Removed type resolution queue in favor of tink_syntaxhub.

This commit is contained in:
back2dos
2015-05-18 01:18:17 +02:00
parent dc29f07217
commit 0db8ee09f1

View File

@@ -36,59 +36,5 @@ class MacroApi {
static public function pos()
return haxe.macro.Context.currentPos();
static public var typeNotFound(get, null):Signal<TypeResolution>;
static function get_typeNotFound() {
if (typeNotFound == null) {
var trigger = Signal.trigger();
var listening = false;
function register() {
if (listening) return;
listening = true;
haxe.macro.Context.onTypeNotFound(function (name:String) {
@:privateAccess Positions.errorFunc = @:privateAccess Positions.abortTypeBuild;
var def = Ref.to(Left(name));
try trigger.trigger(def)
catch (abort:tink.macro.Positions.AbortBuild) {
var cl = macro class {
static var __error = ${Positions.errorExpr(abort.pos, abort.message)};
}
var path = name.split('.');
cl.name = path.pop();
cl.pack = path;
cl.pos = abort.pos;
def.value = Right(cl);
}
@:privateAccess Positions.errorFunc = @:privateAccess Positions.contextError;
return switch def.value {
case Right(def): def;
default: null;
}
});
}
register();
haxe.macro.Context.onMacroContextReused(function () {
listening = false;
return true;
});
var ret = trigger.asSignal();
typeNotFound = new Signal(function (cb) {
register();
return ret.handle(cb);
});
}
return typeNotFound;
}
}