Rewriting types into ints at typechecking phase
This commit is contained in:
@@ -1,9 +1,46 @@
|
||||
|
||||
|
||||
main :: (argc: int, argv: **char): int
|
||||
test_type()
|
||||
|
||||
|
||||
test_any :: ()
|
||||
some_int_value := 10
|
||||
thing: Any = some_int_value
|
||||
other_any: Any = thing
|
||||
imp_any := thing
|
||||
|
||||
|
||||
Some_Struct :: struct
|
||||
thing: int
|
||||
|
||||
main :: (argc: int, argv: **char): int
|
||||
test_type :: ()
|
||||
type1: Type = **[]int
|
||||
type2 := []*[]*Some_Struct
|
||||
type3 := Some_Struct
|
||||
|
||||
type4 := [32]Some_Struct
|
||||
type5 := [][32]*Some_Struct
|
||||
type6 := [][32]*[16][]Some_Struct
|
||||
|
||||
t1 := get_type_info(type1)
|
||||
assert(t1.kind == Type_Info_Kind.POINTER)
|
||||
|
||||
t2 := get_type_info(type2)
|
||||
assert(t2.kind == Type_Info_Kind.SLICE)
|
||||
|
||||
t3 := get_type_info(type3)
|
||||
assert(t3.kind == Type_Info_Kind.STRUCT)
|
||||
|
||||
t4 := get_type_info(type4)
|
||||
assert(t4.array_size == 32)
|
||||
assert(t4.kind == Type_Info_Kind.ARRAY)
|
||||
|
||||
t5 := get_type_info(type5)
|
||||
t51 := get_type_info(t5.base_type)
|
||||
assert(t51.kind == Type_Info_Kind.ARRAY)
|
||||
|
||||
|
||||
t6 := get_type_info(type6)
|
||||
t61 := get_type_info(t6.base_type)
|
||||
t62 := get_type_info(t61.base_type)
|
||||
assert(t62.kind == Type_Info_Kind.POINTER)
|
||||
|
||||
Reference in New Issue
Block a user