11
2- let std-apply-macro(tctx: Maybe<TContext>, t: AST): (TContext?, AST) = (
2+ let std-apply-macro(tctx: Maybe<TContext>, t: AST, used: IsUsed ): (TContext?, AST) = (
33 match t {
44 App{left:Var{mname=key}, margs=right} => (
5- std-apply-macro(tctx, mname, margs);
5+ std-apply-macro(tctx, mname, margs, used );
66 );
77 }
88);
99
10- let std-apply-macro(tctx: Maybe<TContext>, mname: CString, margs: AST): (TContext?, AST) = std-apply-macro(tctx, mname, margs, true);
11- let std-apply-macro-weak(tctx: Maybe<TContext>, mname: CString, margs: AST): (TContext?, AST) = std-apply-macro(tctx, mname, margs, false);
10+ let std-apply-macro(tctx: Maybe<TContext>, mname: CString, margs: AST, used: IsUsed ): (TContext?, AST) = std-apply-macro(tctx, mname, margs, used , true);
11+ let std-apply-macro-weak(tctx: Maybe<TContext>, mname: CString, margs: AST, used: IsUsed ): (TContext?, AST) = std-apply-macro(tctx, mname, margs, used , false);
1212
1313let std-apply-macro-concat(tctx: Maybe<TContext>, mname: CString, margs: AST): (TContext?, AST) = (
1414 match margs {
@@ -28,7 +28,7 @@ let std-apply-macro-location(tctx: Maybe<TContext>, mname: CString, margs: AST):
2828 (tctx, mk-lit(to-smart-string(margs.location)).ascript(t1(c"SmartString")))
2929);
3030
31- let std-apply-macro(tctx: Maybe<TContext>, mname: CString, margs: AST, strong: Bool): (TContext?, AST) = (
31+ let std-apply-macro(tctx: Maybe<TContext>, mname: CString, margs: AST, used: IsUsed, strong: Bool): (TContext?, AST) = (
3232 let result = ASTEOF;
3333 if mname==c"macro::concat" then (tctx, result) = std-apply-macro-concat(tctx, mname, margs)
3434 else if mname==c"macro::location" then (tctx, result) = std-apply-macro-location(tctx, mname, margs)
@@ -71,7 +71,7 @@ let std-apply-macro(tctx: Maybe<TContext>, mname: CString, margs: AST, strong: B
7171 (tctx, result) = std-apply-macro-candidates(tctx, mname, margs, candidates);
7272 };
7373 if strong && not(non-zero(result)) then exit-error("Failed to Apply Macro: \{mname}\nArgs: \{margs}\n", margs);
74- if strong then (tctx, result) = std-infer-expr(tctx, result, false, Used , TAny);
74+ if strong then (tctx, result) = std-infer-expr(tctx, result, false, used , TAny);
7575 (tctx, result)
7676);
7777
0 commit comments