v2: allow pointers to be initialized with 0
parent
5b08f307c8
commit
8497d637d9
|
@ -372,6 +372,8 @@ pub fn (t &Table) check(got, expected Type) bool {
|
||||||
exp_type_sym := t.get_type_symbol(expected)
|
exp_type_sym := t.get_type_symbol(expected)
|
||||||
got_idx := type_idx(got)
|
got_idx := type_idx(got)
|
||||||
exp_idx := type_idx(expected)
|
exp_idx := type_idx(expected)
|
||||||
|
// got_is_ptr := type_is_ptr(got)
|
||||||
|
exp_is_ptr := type_is_ptr(expected)
|
||||||
// println('check: $got_type_sym.name, $exp_type_sym.name')
|
// println('check: $got_type_sym.name, $exp_type_sym.name')
|
||||||
if got_type_sym.kind == .none_ {
|
if got_type_sym.kind == .none_ {
|
||||||
// TODO
|
// TODO
|
||||||
|
@ -386,6 +388,10 @@ pub fn (t &Table) check(got, expected Type) bool {
|
||||||
if got_type_sym.is_int() && exp_type_sym.is_int() {
|
if got_type_sym.is_int() && exp_type_sym.is_int() {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
// allow pointers to be initialized with 0. TODO: use none instead
|
||||||
|
if exp_is_ptr && got_idx == int_type_idx {
|
||||||
|
return true
|
||||||
|
}
|
||||||
// allow enum value to be used as int
|
// allow enum value to be used as int
|
||||||
if (got_type_sym.is_int() && exp_type_sym.kind == .enum_) ||
|
if (got_type_sym.is_int() && exp_type_sym.kind == .enum_) ||
|
||||||
(exp_type_sym.is_int() && got_type_sym.kind == .enum_) {
|
(exp_type_sym.is_int() && got_type_sym.kind == .enum_) {
|
||||||
|
|
Loading…
Reference in New Issue