1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
//! > Test call with coupon
//! > test_runner_name
test_expr_semantics
//! > module_code
fn foo(x: u8) {
6;
}
extern fn get_coupon() -> foo::Coupon nopanic;
//! > expr_code
foo(7, __coupon__: get_coupon())
//! > expected
FunctionCall(
ExprFunctionCall {
function: test::foo,
args: [
Value(
Literal(
ExprNumericLiteral {
value: 7,
ty: core::integer::u8,
},
),
),
],
coupon_arg: Some(
FunctionCall(
ExprFunctionCall {
function: test::get_coupon,
args: [],
coupon_arg: None,
ty: test::foo::Coupon,
},
),
),
ty: (),
},
)
//! > semantic_diagnostics
//! > expected_semantics
FunctionCall(
ExprFunctionCall {
function: test::foo,
args: [
Value(
Literal(
ExprNumericLiteral {
value: 7,
ty: core::integer::u8,
},
),
),
],
coupon_arg: Some(
FunctionCall(
ExprFunctionCall {
function: test::get_coupon,
args: [],
coupon_arg: None,
ty: test::foo::Coupon,
},
),
),
ty: (),
},
)
//! > expected_diagnostics