diff options
-rwxr-xr-x | compiler/evals.nim | 2 | ||||
-rw-r--r-- | tests/accept/run/tactiontable.nim | 27 |
2 files changed, 28 insertions, 1 deletions
diff --git a/compiler/evals.nim b/compiler/evals.nim index 83dcf9df7..55157ea45 100755 --- a/compiler/evals.nim +++ b/compiler/evals.nim @@ -219,7 +219,7 @@ proc getNullValue(typ: PType, info: TLineInfo): PNode = var t = skipTypes(typ, abstractRange) result = emptyNode case t.kind - of tyBool, tyChar, tyInt..tyInt64: + of tyBool, tyEnum, tyChar, tyInt..tyInt64: result = newNodeIT(nkIntLit, info, t) of tyFloat..tyFloat128: result = newNodeIt(nkFloatLit, info, t) diff --git a/tests/accept/run/tactiontable.nim b/tests/accept/run/tactiontable.nim new file mode 100644 index 000000000..6fe39359c --- /dev/null +++ b/tests/accept/run/tactiontable.nim @@ -0,0 +1,27 @@ +discard """ + output: "action 3 arg" +""" + +import tables + +proc action1(arg: string) = + echo "action 1 ", arg + +proc action2(arg: string) = + echo "action 2 ", arg + +proc action3(arg: string) = + echo "action 3 ", arg + +proc action4(arg: string) = + echo "action 4 ", arg + +const + actionTable = { + "A": action1, + "B": action2, + "C": action3, + "D": action4}.toTable + +actionTable["C"]("arg") + |