bugfix: parsing types and Result->unwrap
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Tue, 23 May 2023 03:30:52 +0000 (22:30 -0500)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Tue, 23 May 2023 03:30:52 +0000 (22:30 -0500)
compiler/src/parser.c
core/container/result.onyx

index ecd261f828ef5599f42d606efcfc5b45227964aa..441d0dada2af26fa2a036e6c9dde4736e381c0d7 100644 (file)
@@ -1997,9 +1997,11 @@ static AstType* parse_type(OnyxParser* parser) {
                     pc_type->params = params;
 
                     *next_insertion = (AstType *) pc_type;
-                } else {
-                    next_insertion = NULL;
                 }
+
+                if (peek_token(0)->type != '.')
+                    next_insertion = NULL;
+
                 break;
             }
 
index 2ef516d498cb68453c60593372caa471619f09e6..2ed9c51dfb40a3f26601d52fb46dddf1551a98ce 100644 (file)
@@ -70,8 +70,8 @@ Result :: union (Ok_Type: type_expr, Err_Type: type_expr) {
     unwrap :: (r: #Self) -> r.Ok_Type {
         switch r {
             case .Ok => v do return v;
-            case #default {
-                msg := tprintf("Unwrapping Result with error '{}'.", r.__data.error);
+            case .Err => err {
+                msg := tprintf("Unwrapping Result with error '{}'.", err);
                 assert(false, msg);
                 return .{};
             }