mirror of
https://github.com/Ed94/Odin.git
synced 2026-07-17 00:11:25 -07:00
Add error message for when trying to assign a type to a variable.
This commit is contained in:
+2
-3
@@ -1,7 +1,6 @@
|
||||
package c
|
||||
|
||||
import b "core:builtin"
|
||||
import "core:os"
|
||||
|
||||
CHAR_BIT :: 8;
|
||||
|
||||
@@ -15,8 +14,8 @@ ushort :: b.u16;
|
||||
int :: b.i32;
|
||||
uint :: b.u32;
|
||||
|
||||
long :: (os.OS == "windows" || size_of(b.rawptr) == 4) ? b.i32 : b.i64;
|
||||
ulong :: (os.OS == "windows" || size_of(b.rawptr) == 4) ? b.u32 : b.u64;
|
||||
long :: (ODIN_OS == "windows" || size_of(b.rawptr) == 4) ? b.i32 : b.i64;
|
||||
ulong :: (ODIN_OS == "windows" || size_of(b.rawptr) == 4) ? b.u32 : b.u64;
|
||||
|
||||
longlong :: b.i64;
|
||||
ulonglong :: b.u64;
|
||||
|
||||
@@ -40,6 +40,14 @@ Type *check_init_variable(CheckerContext *ctx, Entity *e, Operand *operand, Stri
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
if (operand->mode == Addressing_Type) {
|
||||
gbString t = type_to_string(operand->type);
|
||||
error(operand->expr, "Cannot assign a type '%s' to variable '%.*s'", t, LIT(e->token.string));
|
||||
gb_string_free(t);
|
||||
e->type = operand->type;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (e->type == nullptr) {
|
||||
|
||||
Reference in New Issue
Block a user