Improved "null" handling

This commit is contained in:
Jaime Humberto Macias Bustamante
2025-05-13 12:04:49 -07:00
parent 8dce40354a
commit cae6d5072c
5 changed files with 123 additions and 102 deletions
+3 -3
View File
@@ -45,7 +45,7 @@ class CustomClass implements IHScriptCustomAccessBehaviour {
private var __cachedVarDecls:Map<String, VarDecl> = [];
public var __allowSetGet:Bool = false;
public var __allowInnerAccess:Bool = false;
public var __allowPrivateAccess:Bool = false;
private var isInline(default, null):Bool = false;
private var ogVariables(default, null):Map<String, Dynamic>;
@@ -326,7 +326,7 @@ class CustomClass implements IHScriptCustomAccessBehaviour {
var value:Dynamic = null;
if(getter == ANever || getter == ANull && !__allowInnerAccess)
if(getter == ANever || getter == ANull && !__allowPrivateAccess)
throw 'field $name cannot be accessed for reading';
if (__allowSetGet && getter == AGet) {
@@ -382,7 +382,7 @@ class CustomClass implements IHScriptCustomAccessBehaviour {
var v = getVar(name);
var setter = v.set;
if (setter == ANever || setter == ANull && !__allowInnerAccess || (v.isFinal && !initializing))
if (setter == ANever || setter == ANull && !__allowPrivateAccess || (v.isFinal && !initializing))
throw 'field $name cannot be accessed for writing';
if (__allowSetGet && setter == ASet) {
+3 -3
View File
@@ -31,7 +31,7 @@ class CustomClassDecl implements IHScriptCustomAccessBehaviour {
public var __allowSetGet:Bool = true;
public var __allowInnerAccess:Bool = false;
public var __allowPrivateAccess:Bool = false;
public function new(classDecl:Expr.ClassDecl, imports:Map<String, CustomClassImport>, usings:Array<String>, ?pkg:Array<String>, ?ogInterp:Interp, ?isInline:Bool) {
this.classDecl = classDecl;
@@ -192,7 +192,7 @@ class CustomClassDecl implements IHScriptCustomAccessBehaviour {
var r:Dynamic = null;
if (getter == ANever || getter == ANull && !__allowInnerAccess)
if (getter == ANever || getter == ANull && !__allowPrivateAccess)
throw 'field $name cannot be accessed for reading';
if(__allowSetGet && getter == AGet){
@@ -227,7 +227,7 @@ class CustomClassDecl implements IHScriptCustomAccessBehaviour {
var v = getVar(name);
var setter = v.set;
if (setter == ANever || setter == ANull && !__allowInnerAccess || v.isFinal)
if (setter == ANever || setter == ANull && !__allowPrivateAccess || v.isFinal)
throw 'field $name cannot be accessed for writing';
if (__allowSetGet && setter == ASet) {