// issue-0041 — Pointer / optional / array / function / tuple types as // expression-position values (size_of / align_of arg, const-decl RHS). #import "modules/std.sx"; // Unambiguous type-form const-decl aliases. Ptr :: *u8; Maybe :: ?u8; Arr :: [3]u8; Cb :: (s32) -> s32; main :: () -> s32 { // Direct: parser fix for *T, ?T + existing [N]T path. print("size_of(*u8) = {}\n", size_of(*u8)); print("align_of(*u8) = {}\n", align_of(*u8)); print("size_of(?u8) = {}\n", size_of(?u8)); print("size_of([3]u8) = {}\n", size_of([3]u8)); // Function-type literal in expression position. print("size_of((s32)->s32) = {}\n", size_of((s32) -> s32)); // Tuple literal reinterpreted as tuple type at the type-demanding site. print("size_of((s32, s32)) = {}\n", size_of((s32, s32))); // Aliases. print("size_of(Ptr) = {}\n", size_of(Ptr)); print("size_of(Maybe) = {}\n", size_of(Maybe)); print("size_of(Arr) = {}\n", size_of(Arr)); print("size_of(Cb) = {}\n", size_of(Cb)); 0; }