Add error message for when trying to assign a type to a variable.

This commit is contained in:
gingerBill
2019-03-22 13:55:29 +00:00
parent 0e1cfa5a0a
commit 886054f0f8
2 changed files with 10 additions and 3 deletions
+2 -3
View File
@@ -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;
+8
View File
@@ -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) {