unify catch fallback value sources
This commit is contained in:
@@ -0,0 +1,110 @@
|
||||
==================
|
||||
Catch value sources
|
||||
==================
|
||||
|
||||
recover func() void {
|
||||
a :: fail() catch |err| handle(err)
|
||||
b :: fail() catch |err| match err {
|
||||
.bad: 1
|
||||
else: 2
|
||||
}
|
||||
c :: fail() catch { yield 3 }
|
||||
d :: fail() catch if true { yield 4 } else { yield 5 }
|
||||
}
|
||||
|
||||
---
|
||||
|
||||
(source_file
|
||||
(function_declaration
|
||||
(identifier)
|
||||
(parameter_list)
|
||||
(type
|
||||
(builtin_type))
|
||||
(block
|
||||
(statement
|
||||
(constant_declaration
|
||||
(identifier)
|
||||
(expression
|
||||
(catch_expression
|
||||
(expression
|
||||
(call_expression
|
||||
(expression
|
||||
(identifier))
|
||||
(argument_list)))
|
||||
(error_capture
|
||||
(identifier))
|
||||
(expression
|
||||
(call_expression
|
||||
(expression
|
||||
(identifier))
|
||||
(argument_list
|
||||
(expression
|
||||
(identifier)))))))))
|
||||
(statement
|
||||
(constant_declaration
|
||||
(identifier)
|
||||
(expression
|
||||
(catch_expression
|
||||
(expression
|
||||
(call_expression
|
||||
(expression
|
||||
(identifier))
|
||||
(argument_list)))
|
||||
(error_capture
|
||||
(identifier))
|
||||
(match_statement
|
||||
(expression
|
||||
(identifier))
|
||||
(match_arm
|
||||
(expression
|
||||
(enum_literal
|
||||
(identifier)))
|
||||
(statement
|
||||
(expression_statement
|
||||
(expression
|
||||
(integer)))))
|
||||
(match_arm
|
||||
(statement
|
||||
(expression_statement
|
||||
(expression
|
||||
(integer))))))))))
|
||||
(statement
|
||||
(constant_declaration
|
||||
(identifier)
|
||||
(expression
|
||||
(catch_expression
|
||||
(expression
|
||||
(call_expression
|
||||
(expression
|
||||
(identifier))
|
||||
(argument_list)))
|
||||
(block
|
||||
(statement
|
||||
(yield_statement
|
||||
(expression
|
||||
(integer)))))))))
|
||||
(statement
|
||||
(constant_declaration
|
||||
(identifier)
|
||||
(expression
|
||||
(catch_expression
|
||||
(expression
|
||||
(call_expression
|
||||
(expression
|
||||
(identifier))
|
||||
(argument_list)))
|
||||
(if_statement
|
||||
(expression
|
||||
(boolean))
|
||||
(statement
|
||||
(block
|
||||
(statement
|
||||
(yield_statement
|
||||
(expression
|
||||
(integer))))))
|
||||
(statement
|
||||
(block
|
||||
(statement
|
||||
(yield_statement
|
||||
(expression
|
||||
(integer))))))))))))))
|
||||
Reference in New Issue
Block a user