File tree 2 files changed +17
-1
lines changed
2 files changed +17
-1
lines changed Original file line number Diff line number Diff line change @@ -233,6 +233,7 @@ var (
233
233
KNOWN_MACROS * Var
234
234
REQUIRE_VAR * Var
235
235
ALIAS_VAR * Var
236
+ CREATE_NS_VAR * Var
236
237
WARNINGS = Warnings {}
237
238
KEYWORDS = Keywords {
238
239
tag : MakeKeyword ("tag" ),
@@ -1230,6 +1231,13 @@ func getAliasVar(ctx *ParseContext) *Var {
1230
1231
return ALIAS_VAR
1231
1232
}
1232
1233
1234
+ func getCreateNsVar (ctx * ParseContext ) * Var {
1235
+ if CREATE_NS_VAR == nil {
1236
+ CREATE_NS_VAR = ctx .GlobalEnv .CoreNamespace .Resolve ("create-ns" )
1237
+ }
1238
+ return CREATE_NS_VAR
1239
+ }
1240
+
1233
1241
func checkCall (expr Expr , isMacro bool , call * CallExpr , pos Position ) {
1234
1242
switch expr := expr .(type ) {
1235
1243
case * FnExpr :
@@ -1379,7 +1387,11 @@ func parseList(obj Object, ctx *ParseContext) Expr {
1379
1387
if ! reportWrongArity (f .fnExpr , c .vr .isMacro , res , pos ) {
1380
1388
require := getRequireVar (ctx )
1381
1389
alias := getAliasVar (ctx )
1382
- if (c .vr .Value .Equals (require .Value ) || c .vr .Value .Equals (alias .Value )) && areAllLiteralExprs (res .args ) {
1390
+ createNs := getCreateNsVar (ctx )
1391
+ if (c .vr .Value .Equals (require .Value ) ||
1392
+ c .vr .Value .Equals (alias .Value ) ||
1393
+ c .vr .Value .Equals (createNs .Value )) &&
1394
+ areAllLiteralExprs (res .args ) {
1383
1395
Eval (res , nil )
1384
1396
}
1385
1397
}
Original file line number Diff line number Diff line change
1
+ (create-ns 'test.test)
1
2
(alias 'os 'joker.os)
3
+ (alias 't 'test.test)
2
4
3
5
(os/sh " ls" )
6
+ (test.test/foo )
7
+ (t/bar )
You can’t perform that action at this time.
0 commit comments