fix: clj_ prefix for identifiers + try/catch/finally fixes
- #9: Add clj_ prefix to all mangled identifiers to avoid Nim case-insensitive name conflicts (parseQueryString ≡ parse_query_string) - #11: Fix finally block - discard expression results - #11: Fix catch handler - use original name for scope tracking - Fix loop handler - use original name for addToScope - Update emitter tests for clj_ prefix
This commit is contained in:
@@ -43,13 +43,13 @@ suite "Emitter - Basic Values":
|
||||
registerGlobal("x")
|
||||
let v = cljSymbol("x")
|
||||
let code = emitExpr(v)
|
||||
check code == "x"
|
||||
check code == "clj_x"
|
||||
|
||||
test "emit mangled symbol":
|
||||
registerGlobal("my-var")
|
||||
let v = cljSymbol("my-var")
|
||||
let code = emitExpr(v)
|
||||
check code == "my_var"
|
||||
check code == "clj_my_var"
|
||||
|
||||
test "emit vector":
|
||||
let v = cljVector(@[cljInt(1), cljInt(2)])
|
||||
@@ -70,12 +70,12 @@ suite "Emitter - Special Forms":
|
||||
test "emit def":
|
||||
let v = read("(def x 42)")
|
||||
let code = emitExpr(v)
|
||||
check "let x" in code
|
||||
check "let clj_x" in code
|
||||
|
||||
test "emit defn":
|
||||
let v = read("(defn square [x] (* x x))")
|
||||
let code = emitExpr(v)
|
||||
check "proc square" in code
|
||||
check "proc clj_square" in code
|
||||
|
||||
test "emit if":
|
||||
let v = read("(if true 1 2)")
|
||||
@@ -161,14 +161,14 @@ suite "Emitter - Program":
|
||||
test "emitProgram with defs and main":
|
||||
let forms = readAll("(def x 42) (println x)")
|
||||
let code = emitProgram(forms)
|
||||
check "let x" in code
|
||||
check "let clj_x" in code
|
||||
check "when isMainModule" in code
|
||||
|
||||
test "emitProgram multiple defs":
|
||||
let forms = readAll("(def a 1) (def b 2)")
|
||||
let code = emitProgram(forms)
|
||||
check "let a" in code
|
||||
check "let b" in code
|
||||
check "let clj_a" in code
|
||||
check "let clj_b" in code
|
||||
|
||||
suite "Emitter - Map Literals":
|
||||
test "emit empty map":
|
||||
|
||||
Reference in New Issue
Block a user