Import aliases for Custom Classes

Import aliases support for Custom Classes. This allows you to import classes and other custom classes with an alias inside of a Custom Class.

This includes some improvements on "parseModuleDecl()"
This commit is contained in:
Jaime Humberto Macias Bustamante
2025-02-01 21:00:41 -07:00
parent b25ecb08bc
commit 241d97aed0
5 changed files with 55 additions and 20 deletions
+4 -3
View File
@@ -152,22 +152,23 @@ class CustomClass implements IHScriptCustomAccessBehaviour{
var i:Int = 0;
for(_import in __class.imports) {
var importedClass = _import.fullPath;
var importAlias = _import.as;
if(Interp.customClassExist(importedClass) && this.interp.importFailedCallback != null) {
this.interp.importFailedCallback(importedClass.split("."));
this.interp.importFailedCallback(importedClass.split("."), importAlias);
continue;
}
#if hscriptPos
var e:Expr = {
e: ExprDef.EImport(importedClass),
e: ExprDef.EImport(importedClass, importAlias),
pmin: 0,
pmax: 0,
origin: this.className,
line: i
};
#else
var e = Expr.EImport(importedClass);
var e = Expr.EImport(importedClass, importAlias);
#end
this.interp.expr(e);
i++;
+1
View File
@@ -157,4 +157,5 @@ typedef CustomClassImport = {
var ?name:String;
var ?pkg:Array<String>;
var ?fullPath:String; // pkg.pkg.pkg.name
var ?as:Null<String>; // import pkg.Name as OtherName
}