mirror of
https://github.com/odin-lang/Odin.git
synced 2026-10-06 12:52:49 -04:00
Fix trailing default argument checking
This commit is contained in:
1 parent
2d73c8868b
commit
c2c935ba81
4 files changed
+57
-31
No files matched your search
+21
-18
@@ -1100,24 +1100,6 @@ bool are_types_identical(Type *x, Type *y) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
Type *default_type(Type *type) {
|
||||
if (type == NULL) {
|
||||
return t_invalid;
|
||||
}
|
||||
if (type->kind == Type_Basic) {
|
||||
switch (type->Basic.kind) {
|
||||
case Basic_UntypedBool: return t_bool;
|
||||
case Basic_UntypedInteger: return t_int;
|
||||
case Basic_UntypedFloat: return t_f64;
|
||||
case Basic_UntypedComplex: return t_complex128;
|
||||
case Basic_UntypedString: return t_string;
|
||||
case Basic_UntypedRune: return t_rune;
|
||||
}
|
||||
}
|
||||
return type;
|
||||
}
|
||||
|
||||
Type *default_bit_field_value_type(Type *type) {
|
||||
if (type == NULL) {
|
||||
return t_invalid;
|
||||
@@ -1138,6 +1120,27 @@ Type *default_bit_field_value_type(Type *type) {
|
||||
return type;
|
||||
}
|
||||
|
||||
Type *default_type(Type *type) {
|
||||
if (type == NULL) {
|
||||
return t_invalid;
|
||||
}
|
||||
if (type->kind == Type_Basic) {
|
||||
switch (type->Basic.kind) {
|
||||
case Basic_UntypedBool: return t_bool;
|
||||
case Basic_UntypedInteger: return t_int;
|
||||
case Basic_UntypedFloat: return t_f64;
|
||||
case Basic_UntypedComplex: return t_complex128;
|
||||
case Basic_UntypedString: return t_string;
|
||||
case Basic_UntypedRune: return t_rune;
|
||||
}
|
||||
}
|
||||
if (type->kind == Type_BitFieldValue) {
|
||||
return default_bit_field_value_type(type);
|
||||
}
|
||||
return type;
|
||||
}
|
||||
|
||||
|
||||
// NOTE(bill): Valid Compile time execution #run type
|
||||
bool is_type_cte_safe(Type *type) {
|
||||
type = default_type(base_type(type));
|
||||
|
||||
Reference in new issue
Block a user