checker: check generics fn called outside of generic fn (#9984)
parent
ddc003380c
commit
1d045e5496
|
@ -2135,6 +2135,10 @@ pub fn (mut c Checker) fn_call(mut call_expr ast.CallExpr) ast.Type {
|
|||
concrete_types << concrete_type
|
||||
}
|
||||
}
|
||||
if c.cur_fn.cur_concrete_types.len == 0 && has_generic {
|
||||
c.error('generic fn using generic types cannot be called outside of generic fn',
|
||||
call_expr.pos)
|
||||
}
|
||||
if has_generic {
|
||||
mut no_exists := true
|
||||
if c.mod != '' && !fn_name.contains('.') {
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
vlib/v/checker/tests/generics_fn_called_outside_of_generic_fn.vv:4:2: error: generic fn using generic types cannot be called outside of generic fn
|
||||
2 |
|
||||
3 | fn main() {
|
||||
4 | foo<T>()
|
||||
| ~~~~~~~~
|
||||
5 | }
|
|
@ -0,0 +1,5 @@
|
|||
fn foo<T>() {}
|
||||
|
||||
fn main() {
|
||||
foo<T>()
|
||||
}
|
Loading…
Reference in New Issue