cafe
cafe copied to clipboard
closures don't allow same parameter names as declared in there parent scope
Example:
func A(){
var a; # local variable `a`
func B(a){ # parameter `a` collides with parent declaration `a`
cmd.println("I am in B");
}
return B;
}
Throws following while compiling:
Exception in thread "main" java.lang.NullPointerException
at compiler.ast.Node.getSourcePosition(Node.java:55)
at compiler.analyzer.SemanticsChecker.logError(SemanticsChecker.java:481)
at compiler.analyzer.SemanticsChecker.visitParamList(SemanticsChecker.java:350)
at compiler.ast.Node$ParameterListNode.accept(Node.java:794)
at compiler.analyzer.SemanticsChecker.visitFuncDecl(SemanticsChecker.java:191)
at compiler.ast.Node$FuncDeclNode.accept(Node.java:763)
at compiler.analyzer.SemanticsChecker.visitBlock(SemanticsChecker.java:208)
at compiler.ast.Node$BlockNode.accept(Node.java:1033)
at compiler.analyzer.SemanticsChecker.visitFuncDecl(SemanticsChecker.java:192)
at compiler.ast.Node$FuncDeclNode.accept(Node.java:763)
at compiler.analyzer.SemanticsChecker.visitProgram(SemanticsChecker.java:125)
at compiler.main.CafeCompiler.compile(CafeCompiler.java:124)
at compiler.main.cli.CompileCommand.execute(CompileCommand.java:53)
at compiler.main.Main.compile(Main.java:99)
at compiler.Main.compile(Main.java:45)
at compiler.Main.main(Main.java:40)