| author | |
| committer | |
| log | ee982ae162901078458003fad169ddb1cf4d1d06 |
| tree | c9268c8f9a0a06efb28ff9daaaa055f527d0d3bd |
| parent | 0efe441dfd422d4bfe501d5fbfbf15bd5951b494 |
4 files changed, 9 insertions(+), 9 deletions(-)
TODO-6| ... | @@ -2,15 +2,9 @@ comptime calling fn with inferred error set should give empty error set but stil | ... | @@ -2,15 +2,9 @@ comptime calling fn with inferred error set should give empty error set but stil |
| 2 | 2 | ||
| 3 | comptime err to int of empty err set and of size 1 err set | 3 | comptime err to int of empty err set and of size 1 err set |
| 4 | 4 | ||
| 5 | comptime test for err | ||
| 6 | |||
| 7 | 5 | ||
| 8 | undefined in infer error | 6 | undefined in infer error |
| 9 | 7 | ||
| 10 | syntax - ?a!b should be ?(a!b) but it's (?a)!b | ||
| 11 | |||
| 12 | syntax - (error{}!void) as the return type | 8 | syntax - (error{}!void) as the return type |
| 13 | 9 | ||
| 14 | 10 | ||
| 15 | passing a fn()error{}!T to a fn()error!T should be a compile error, they're not compatible | ||
| 16 |
doc/langref.html.in+1-1| ... | @@ -5743,7 +5743,7 @@ CurlySuffixExpression = TypeExpr option(ContainerInitExpression) | ... | @@ -5743,7 +5743,7 @@ CurlySuffixExpression = TypeExpr option(ContainerInitExpression) |
| 5743 | 5743 | ||
| 5744 | MultiplyOperator = "||" | "*" | "/" | "%" | "**" | "*%" | 5744 | MultiplyOperator = "||" | "*" | "/" | "%" | "**" | "*%" |
| 5745 | 5745 | ||
| 5746 | PrefixOpExpression = PrefixOp PrefixOpExpression | SuffixOpExpression | 5746 | PrefixOpExpression = PrefixOp ErrorSetExpr | SuffixOpExpression |
| 5747 | 5747 | ||
| 5748 | SuffixOpExpression = PrimaryExpression option(FnCallExpression | ArrayAccessExpression | FieldAccessExpression | SliceExpression) | 5748 | SuffixOpExpression = PrimaryExpression option(FnCallExpression | ArrayAccessExpression | FieldAccessExpression | SliceExpression) |
| 5749 | 5749 |
src/parser.cpp+2-2| ... | @@ -1041,7 +1041,7 @@ static AstNode *ast_parse_addr_of(ParseContext *pc, size_t *token_index) { | ... | @@ -1041,7 +1041,7 @@ static AstNode *ast_parse_addr_of(ParseContext *pc, size_t *token_index) { |
| 1041 | } | 1041 | } |
| 1042 | 1042 | ||
| 1043 | /* | 1043 | /* |
| 1044 | PrefixOpExpression : PrefixOp PrefixOpExpression | SuffixOpExpression | 1044 | PrefixOpExpression = PrefixOp ErrorSetExpr | SuffixOpExpression |
| 1045 | PrefixOp = "!" | "-" | "~" | "*" | ("&" option("align" "(" Expression option(":" Integer ":" Integer) ")" ) option("const") option("volatile")) | "?" | "??" | "-%" | "try" | 1045 | PrefixOp = "!" | "-" | "~" | "*" | ("&" option("align" "(" Expression option(":" Integer ":" Integer) ")" ) option("const") option("volatile")) | "?" | "??" | "-%" | "try" |
| 1046 | */ | 1046 | */ |
| 1047 | static AstNode *ast_parse_prefix_op_expr(ParseContext *pc, size_t *token_index, bool mandatory) { | 1047 | static AstNode *ast_parse_prefix_op_expr(ParseContext *pc, size_t *token_index, bool mandatory) { |
| ... | @@ -1072,7 +1072,7 @@ static AstNode *ast_parse_prefix_op_expr(ParseContext *pc, size_t *token_index, | ... | @@ -1072,7 +1072,7 @@ static AstNode *ast_parse_prefix_op_expr(ParseContext *pc, size_t *token_index, |
| 1072 | node->column += 1; | 1072 | node->column += 1; |
| 1073 | } | 1073 | } |
| 1074 | 1074 | ||
| 1075 | AstNode *prefix_op_expr = ast_parse_prefix_op_expr(pc, token_index, true); | 1075 | AstNode *prefix_op_expr = ast_parse_error_set_expr(pc, token_index, true); |
| 1076 | node->data.prefix_op_expr.primary_expr = prefix_op_expr; | 1076 | node->data.prefix_op_expr.primary_expr = prefix_op_expr; |
| 1077 | node->data.prefix_op_expr.prefix_op = prefix_op; | 1077 | node->data.prefix_op_expr.prefix_op = prefix_op; |
| 1078 | 1078 |
test/cases/error.zig+6| ... | @@ -134,3 +134,9 @@ const EmptyErrorSet = error {}; | ... | @@ -134,3 +134,9 @@ const EmptyErrorSet = error {}; |
| 134 | fn testComptimeTestErrorEmptySet(x: EmptyErrorSet!i32) void { | 134 | fn testComptimeTestErrorEmptySet(x: EmptyErrorSet!i32) void { |
| 135 | if (x) |v| assert(v == 1234) else |err| @compileError("bad"); | 135 | if (x) |v| assert(v == 1234) else |err| @compileError("bad"); |
| 136 | } | 136 | } |
| 137 | |||
| 138 | test "syntax: nullable operator in front of error union operator" { | ||
| 139 | comptime { | ||
| 140 | assert(?error!i32 == ?(error!i32)); | ||
| 141 | } | ||
| 142 | } |