do not allow casting bool to int
parent
3a6ccf7f31
commit
1bd8c465d3
|
@ -67,11 +67,11 @@ pub fn (aa mut Automaton) update() {
|
||||||
)
|
)
|
||||||
cell := aa.field.get(x,y)
|
cell := aa.field.get(x,y)
|
||||||
v := if cell == 1 {
|
v := if cell == 1 {
|
||||||
int(moore_sum in [2, 3])
|
moore_sum in [2, 3]
|
||||||
} else {
|
} else {
|
||||||
int(moore_sum == 3)
|
moore_sum == 3
|
||||||
}
|
}
|
||||||
aa.new_field.set(x,y, v )
|
aa.new_field.set(x,y, if v { 1 } else { 0 })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
mut tmp := aa.field
|
mut tmp := aa.field
|
||||||
|
|
|
@ -552,6 +552,10 @@ fn (p mut Parser) cast(typ string) {
|
||||||
if expr_typ == 'string' {
|
if expr_typ == 'string' {
|
||||||
p.error('cannot cast `$expr_typ` to `$typ`')
|
p.error('cannot cast `$expr_typ` to `$typ`')
|
||||||
}
|
}
|
||||||
|
// Nothing can be cast to bool
|
||||||
|
if expr_typ == 'bool' {
|
||||||
|
p.error('cannot cast `bool` to `$typ`')
|
||||||
|
}
|
||||||
p.cgen.set_placeholder(pos, '($typ)(')
|
p.cgen.set_placeholder(pos, '($typ)(')
|
||||||
}
|
}
|
||||||
p.check(.rpar)
|
p.check(.rpar)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
module eventbus
|
module eventbus
|
||||||
|
|
||||||
/*
|
/*
|
||||||
NOTE: All these non-generic methods are temporary until
|
NOTE: All these non-generic methods are temporary until
|
||||||
V has a properly functioning generic system
|
V has a properly functioning generic system
|
||||||
*/
|
*/
|
||||||
|
@ -43,7 +43,7 @@ pub fn get_array<T>(p Params, name string, def T) []T {
|
||||||
return []
|
return []
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: make this a method after generics are fixed.
|
// TODO: make this a method after generics are fixed.
|
||||||
pub fn get_map<T>(p Params, name string, valueTyp T) map[string]T {
|
pub fn get_map<T>(p Params, name string, valueTyp T) map[string]T {
|
||||||
param, _ := p.get_param(name, "")
|
param, _ := p.get_param(name, "")
|
||||||
ret := map[string]T
|
ret := map[string]T
|
||||||
|
@ -71,9 +71,9 @@ pub fn (p Params) get_int_map(name string) map[string]int {
|
||||||
|
|
||||||
pub fn (p Params) get_bool_map(name string) map[string]bool {
|
pub fn (p Params) get_bool_map(name string) map[string]bool {
|
||||||
return get_map(p, name, false)
|
return get_map(p, name, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: make this a method after generics are fixed.
|
// TODO: make this a method after generics are fixed.
|
||||||
pub fn put_map<T>(p mut Params, name string, valueTyp T, value map[string]T) {
|
pub fn put_map<T>(p mut Params, name string, valueTyp T, value map[string]T) {
|
||||||
keys := value.keys()
|
keys := value.keys()
|
||||||
mut vals := []T
|
mut vals := []T
|
||||||
|
@ -88,7 +88,7 @@ pub fn put_map<T>(p mut Params, name string, valueTyp T, value map[string]T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: make this a method after generic methods are working.
|
// TODO: make this a method after generic methods are working.
|
||||||
pub fn put_array<T>(p mut Params, name string, arr []T) {
|
pub fn put_array<T>(p mut Params, name string, arr []T) {
|
||||||
p.put_custom(name, "[$arr.len]", arr.data)
|
p.put_custom(name, "[$arr.len]", arr.data)
|
||||||
}
|
}
|
||||||
|
@ -102,7 +102,7 @@ pub fn (p mut Params) put_string(name string, s string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn (p mut Params) put_bool(name string, val bool) {
|
pub fn (p mut Params) put_bool(name string, val bool) {
|
||||||
p.put_custom(name, "bool", int(val))
|
p.put_custom(name, "bool", if val { 1 } else { 0 })
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn (p mut Params) put_custom(name string, typ string, data voidptr) {
|
pub fn (p mut Params) put_custom(name string, typ string, data voidptr) {
|
||||||
|
@ -124,4 +124,4 @@ fn (p Params) get_param(name string, typ string) (Param, bool) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return Param{value: voidptr(0), keys: voidptr(0)}, false
|
return Param{value: voidptr(0), keys: voidptr(0)}, false
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue