cafe icon indicating copy to clipboard operation
cafe copied to clipboard

closures don't allow same parameter names as declared in there parent scope

Open dhyey-shah opened this issue 3 years ago • 0 comments

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)

dhyey-shah avatar Mar 09 '21 05:03 dhyey-shah