HTVariable constructor

HTVariable({
  1. required String id,
  2. required HTInterpreter interpreter,
  3. String? file,
  4. String? module,
  5. String? classId,
  6. required HTNamespace closure,
  7. String? documentation,
  8. HTType? declType,
  9. dynamic value,
  10. bool isPrivate = false,
  11. bool isExternal = false,
  12. bool isStatic = false,
  13. bool isConst = false,
  14. bool isMutable = false,
  15. bool isTopLevel = false,
  16. bool isField = false,
  17. bool lateFinalize = false,
  18. int? ip,
  19. int? line,
  20. int? column,
})

Create a HTVariable.

If it has initializer code, it will have to be defined in a HTNamespace of an Interpreter before it can be acessed within a script.

Implementation

HTVariable({
  required super.id,
  required HTInterpreter interpreter,
  String? file,
  String? module,
  super.classId,
  required HTNamespace closure,
  super.documentation,
  super.declType,
  dynamic value,
  super.isPrivate = false,
  super.isExternal = false,
  super.isStatic = false,
  super.isConst = false,
  super.isMutable = false,
  super.isTopLevel = false,
  super.isField = false,
  super.lateFinalize = false,
  int? ip,
  int? line,
  int? column,
})  : _closure = closure,
      super(closure: closure) {
  this.interpreter = interpreter;
  if (file != null) {
    this.file = file;
  }
  if (module != null) {
    this.module = module;
  }
  this.ip = ip;
  this.line = line;
  this.column = column;

  if (value != null) {
    _value = value;
    _isInitialized = true;
  } else {
    _isInitialized = (lateFinalize || ip != null) ? false : true;
  }
}