checker: exit if there are errors
parent
8be07194c7
commit
0074976636
|
@ -33,6 +33,9 @@ pub fn (c mut Checker) check(ast_file ast.File) {
|
||||||
for stmt in ast_file.stmts {
|
for stmt in ast_file.stmts {
|
||||||
c.stmt(stmt)
|
c.stmt(stmt)
|
||||||
}
|
}
|
||||||
|
if c.nr_errors > 0 {
|
||||||
|
exit(1)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn (c mut Checker) check_files(ast_files []ast.File) {
|
pub fn (c mut Checker) check_files(ast_files []ast.File) {
|
||||||
|
@ -121,7 +124,6 @@ fn (c mut Checker) check_assign_expr(assign_expr ast.AssignExpr) {
|
||||||
|
|
||||||
pub fn (c mut Checker) call_expr(call_expr ast.CallExpr) table.Type {
|
pub fn (c mut Checker) call_expr(call_expr ast.CallExpr) table.Type {
|
||||||
fn_name := call_expr.name
|
fn_name := call_expr.name
|
||||||
|
|
||||||
mut found := false
|
mut found := false
|
||||||
// look for function in format `mod.fn` or `fn` (main/builtin)
|
// look for function in format `mod.fn` or `fn` (main/builtin)
|
||||||
mut f := table.Fn{}
|
mut f := table.Fn{}
|
||||||
|
@ -139,7 +141,6 @@ pub fn (c mut Checker) call_expr(call_expr ast.CallExpr) table.Type {
|
||||||
if !found {
|
if !found {
|
||||||
c.error('unknown fn: $fn_name', call_expr.pos)
|
c.error('unknown fn: $fn_name', call_expr.pos)
|
||||||
}
|
}
|
||||||
|
|
||||||
if f.is_c || call_expr.is_c {
|
if f.is_c || call_expr.is_c {
|
||||||
return f.return_type
|
return f.return_type
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue