diff --git a/compiler/compiler.go b/compiler/compiler.go index 8b430083..3a588b98 100644 --- a/compiler/compiler.go +++ b/compiler/compiler.go @@ -826,7 +826,8 @@ func (c *Compiler) parseFunc(frame *Frame) { fmt.Printf("\nfunc %s:\n", frame.fn.Function) } if !frame.fn.LLVMFn.IsDeclaration() { - panic("function is already defined: " + frame.fn.LLVMFn.Name()) + c.addError(frame.fn.Pos(), "function is already defined:"+frame.fn.LLVMFn.Name()) + return } if !frame.fn.IsExported() { frame.fn.LLVMFn.SetLinkage(llvm.InternalLinkage)