diff --git a/src/frontend/compiler/compiler.nim b/src/frontend/compiler/compiler.nim index 238f00b..dc7c135 100644 --- a/src/frontend/compiler/compiler.nim +++ b/src/frontend/compiler/compiler.nim @@ -651,7 +651,7 @@ method infer*(self: Compiler, node: Expression): Type = method inferOrError*(self: Compiler, node: Expression): Type = ## Attempts to infer the type of ## the given expression and raises an - ## error with if it fails + ## error if it fails result = self.infer(node) if result.isNil(): self.error("expression has no type", node) diff --git a/src/frontend/compiler/targets/bytecode/target.nim b/src/frontend/compiler/targets/bytecode/target.nim index 99f5e8e..b0c7eef 100644 --- a/src/frontend/compiler/targets/bytecode/target.nim +++ b/src/frontend/compiler/targets/bytecode/target.nim @@ -1810,6 +1810,9 @@ proc varDecl(self: BytecodeCompiler, node: VarDecl) = # If this doesn't fail, then we're good typ = expected else: + # Let the compiler infer the type (this + # is the default behavior already, but + # some users may prefer to be explicit!) typ = self.infer(node.value) self.expression(node.value) self.emitByte(AddVar, node.token.line)