|
@@ -69,6 +69,8 @@ class ScriptChecker {
|
|
checker.removeGlobal(f);
|
|
checker.removeGlobal(f);
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
|
|
+ var isClass = tname.charCodeAt(0) == '#'.code;
|
|
|
|
+ if( isClass ) tname = tname.substr(1);
|
|
var t = checker.types.resolve(tname);
|
|
var t = checker.types.resolve(tname);
|
|
if( t == null ) {
|
|
if( t == null ) {
|
|
var path = tname.split(".");
|
|
var path = tname.split(".");
|
|
@@ -89,6 +91,14 @@ class ScriptChecker {
|
|
error('Global type $tname not found in $apiFiles ($f)');
|
|
error('Global type $tname not found in $apiFiles ($f)');
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
|
|
+ if( isClass ) {
|
|
|
|
+ switch( t ) {
|
|
|
|
+ case TEnum(e,_):
|
|
|
|
+ t = TAnon([for( c in e.constructors ) { name : c.name, opt : false, t : c.args == null ? t : TFun(c.args,t) }]);
|
|
|
|
+ default:
|
|
|
|
+ error('Cannot process class type $tname');
|
|
|
|
+ }
|
|
|
|
+ }
|
|
checker.setGlobal(f, t);
|
|
checker.setGlobal(f, t);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -112,7 +122,7 @@ class ScriptChecker {
|
|
if( cdbPack != "" ) kname = cdbPack + "." + kname;
|
|
if( cdbPack != "" ) kname = cdbPack + "." + kname;
|
|
var kind = checker.types.resolve(kname);
|
|
var kind = checker.types.resolve(kname);
|
|
if( kind == null )
|
|
if( kind == null )
|
|
- kind = TEnum({ name : kname, params : [], constructors : new Map() },[]);
|
|
|
|
|
|
+ kind = TEnum({ name : kname, params : [], constructors : [] },[]);
|
|
var cl : hscript.Checker.CClass = {
|
|
var cl : hscript.Checker.CClass = {
|
|
name : name,
|
|
name : name,
|
|
params : [],
|
|
params : [],
|