| 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 | 2 | |
| 3 | 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 | 6 | undefined in infer error |
| 9 | 7 | |
| 10 | syntax - ?a!b should be ?(a!b) but it's (?a)!b | |
| 11 | ||
| 12 | 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 | 5743 | |
| 5744 | 5744 | MultiplyOperator = "||" | "*" | "/" | "%" | "**" | "*%" |
| 5745 | 5745 | |
| 5746 | PrefixOpExpression = PrefixOp PrefixOpExpression | SuffixOpExpression | |
| 5746 | PrefixOpExpression = PrefixOp ErrorSetExpr | SuffixOpExpression | |
| 5747 | 5747 | |
| 5748 | 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 | 1041 | } |
| 1042 | 1042 | |
| 1043 | 1043 | /* |
| 1044 | PrefixOpExpression : PrefixOp PrefixOpExpression | SuffixOpExpression | |
| 1044 | PrefixOpExpression = PrefixOp ErrorSetExpr | SuffixOpExpression | |
| 1045 | 1045 | PrefixOp = "!" | "-" | "~" | "*" | ("&" option("align" "(" Expression option(":" Integer ":" Integer) ")" ) option("const") option("volatile")) | "?" | "??" | "-%" | "try" |
| 1046 | 1046 | */ |
| 1047 | 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 | 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 | 1076 | node->data.prefix_op_expr.primary_expr = prefix_op_expr; |
| 1077 | 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 | 134 | fn testComptimeTestErrorEmptySet(x: EmptyErrorSet!i32) void { |
| 135 | 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 | } |