Fixed bad error message when no return value + compound inferred type
This commit is contained in:
@@ -50,7 +50,6 @@ Future features
|
||||
- [ ] Way to import and force evaluate #import_lazy #import ?
|
||||
|
||||
Redesign:
|
||||
- [ ] Redesign Type map to use List and reduce wasting space
|
||||
- [ ] Casting syntax
|
||||
|
||||
In the future
|
||||
|
||||
@@ -1466,7 +1466,7 @@ resolve_expr(Ast_Expr *ast, Resolve_Flag flags, Ast_Type *compound_and_const_str
|
||||
}
|
||||
if (!type)
|
||||
type = compound_and_const_string_context;
|
||||
if (!type)
|
||||
if (type == pctx->type_void || type == nullptr)
|
||||
compiler_error(node->pos, "Couldn't infer type of compound expression");
|
||||
|
||||
type_complete(type);
|
||||
|
||||
@@ -1,15 +1,23 @@
|
||||
#import "Arena.core"
|
||||
MA :: #import "Arena.core"
|
||||
|
||||
// @todo:
|
||||
// Add new special type #Type_Size
|
||||
/*
|
||||
PushStruct :: (a: *MA.Arena, $Type): *Type
|
||||
size := size_of(Type)
|
||||
result := PushSize(a, size)
|
||||
return result
|
||||
*/
|
||||
|
||||
PushStruct :: (a: *Arena, type: Type /*#Type_Size*/): *void
|
||||
Color :: struct ;; r: F32; g: F32; b: F32; a: F32
|
||||
AlmostLinearToSRGB :: (a: Color): Color;; return {asd(a.r), asd(a.g), asd(a.b), a.a}
|
||||
|
||||
PushStruct :: (a: *MA.Arena, type: Type): *void
|
||||
ti := GetTypeInfo(type)
|
||||
result := PushSize(a, ti.size->Base.SizeU)
|
||||
result := MA.PushSize(a, ti.size->U64)
|
||||
return result
|
||||
|
||||
main :: (argc: int, argv: **char): int
|
||||
arena: Arena
|
||||
arena: MA.Arena
|
||||
a: *int = PushStruct(&arena, int)
|
||||
Assert(arena.len == SizeOf(int))
|
||||
|
||||
return 0
|
||||
Reference in New Issue
Block a user