Skip to content

Commit 371c23f

Browse files
committed
Update tests
1 parent 372e4ae commit 371c23f

33 files changed

+63
-65
lines changed

src/test/ui/error-codes/E0621-does-not-trigger-for-closures.nll.stderr

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ LL | invoke(&x, |a, b| if a > b { a } else { b }); //~ ERROR E0495
55
| ^^^^^^
66

77
error: unsatisfied lifetime constraints
8-
--> $DIR/E0621-does-not-trigger-for-closures.rs:25:26
8+
--> $DIR/E0621-does-not-trigger-for-closures.rs:25:45
99
|
1010
LL | invoke(&x, |a, b| if a > b { a } else { b }); //~ ERROR E0495
11-
| -- ^^^^^ requires that `'1` must outlive `'2`
11+
| -- ^ returning this value requires that `'1` must outlive `'2`
1212
| ||
1313
| |return type of closure is &'2 i32
1414
| has type `&'1 i32`

src/test/ui/in-band-lifetimes/mismatched.nll.stderr

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ error: unsatisfied lifetime constraints
2222
--> $DIR/mismatched.rs:16:46
2323
|
2424
LL | fn foo2(x: &'a u32, y: &'b u32) -> &'a u32 { y } //~ ERROR lifetime mismatch
25-
| -- -- ^ function was supposed to return data with lifetime `'b` but it is returning data with lifetime `'a`
25+
| -- -- ^ function was supposed to return data with lifetime `'a` but it is returning data with lifetime `'b`
2626
| | |
2727
| | lifetime `'b` defined here
2828
| lifetime `'a` defined here

src/test/ui/issues/issue-14285.nll.stderr

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ LL | B(a) //~ ERROR 22:5: 22:9: explicit lifetime required in the type of
55
| ^
66

77
error[E0621]: explicit lifetime required in the type of `a`
8-
--> $DIR/issue-14285.rs:22:7
8+
--> $DIR/issue-14285.rs:22:5
99
|
1010
LL | fn foo<'a>(a: &Foo) -> B<'a> {
1111
| ---- help: add explicit lifetime `'a` to the type of `a`: `&'a (dyn Foo + 'a)`
1212
LL | B(a) //~ ERROR 22:5: 22:9: explicit lifetime required in the type of `a` [E0621]
13-
| ^ lifetime `'a` required
13+
| ^^^^ lifetime `'a` required
1414

1515
error: aborting due to previous error
1616

src/test/ui/issues/issue-15034.nll.stderr

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ LL | Parser { lexer: lexer }
55
| ^^^^^^
66

77
error[E0621]: explicit lifetime required in the type of `lexer`
8-
--> $DIR/issue-15034.rs:27:25
8+
--> $DIR/issue-15034.rs:27:9
99
|
1010
LL | pub fn new(lexer: &'a mut Lexer) -> Parser<'a> {
1111
| ------------- help: add explicit lifetime `'a` to the type of `lexer`: `&'a mut Lexer<'a>`
1212
LL | Parser { lexer: lexer }
13-
| ^^^^^ lifetime `'a` required
13+
| ^^^^^^^^^^^^^^^^^^^^^^^ lifetime `'a` required
1414

1515
error: aborting due to previous error
1616

src/test/ui/issues/issue-3154.nll.stderr

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@ LL | thing{ x: x } //~ ERROR 16:5: 16:18: explicit lifetime required in the
1111
| ^^^^^
1212

1313
error[E0621]: explicit lifetime required in the type of `x`
14-
--> $DIR/issue-3154.rs:16:15
14+
--> $DIR/issue-3154.rs:16:5
1515
|
1616
LL | fn thing<'a,Q>(x: &Q) -> thing<'a,Q> {
1717
| -- help: add explicit lifetime `'a` to the type of `x`: `&'a Q`
1818
LL | thing{ x: x } //~ ERROR 16:5: 16:18: explicit lifetime required in the type of `x` [E0621]
19-
| ^ lifetime `'a` required
19+
| ^^^^^^^^^^^^^ lifetime `'a` required
2020

2121
error: aborting due to previous error
2222

src/test/ui/issues/issue-40510-1.nll.stderr

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ LL | || {
77
| |return type of closure is &'2 mut std::boxed::Box<()>
88
| lifetime `'1` represents this closure's body
99
LL | &mut x
10-
| ^^^^^^ return requires that `'1` must outlive `'2`
10+
| ^^^^^^ returning this value requires that `'1` must outlive `'2`
1111
|
1212
= note: closure implements `FnMut`, so references to captured variables can't escape the closure
1313

src/test/ui/issues/issue-40510-3.nll.stderr

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ LL | || {
99
LL | / || {
1010
LL | | x.push(())
1111
LL | | }
12-
| |_________^ requires that `'1` must outlive `'2`
12+
| |_________^ returning this value requires that `'1` must outlive `'2`
1313
|
1414
= note: closure implements `FnMut`, so references to captured variables can't escape the closure
1515

src/test/ui/issues/issue-49824.nll.stderr

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ LL | || {
99
LL | / || {
1010
LL | | let _y = &mut x;
1111
LL | | }
12-
| |_________^ requires that `'1` must outlive `'2`
12+
| |_________^ returning this value requires that `'1` must outlive `'2`
1313
|
1414
= note: closure implements `FnMut`, so references to captured variables can't escape the closure
1515

src/test/ui/issues/issue-52213.nll.stderr

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@ LL | match (&t,) { //~ ERROR cannot infer an appropriate lifetime
55
| ^^^^^
66

77
error: unsatisfied lifetime constraints
8-
--> $DIR/issue-52213.rs:13:11
8+
--> $DIR/issue-52213.rs:13:20
99
|
1010
LL | fn transmute_lifetime<'a, 'b, T>(t: &'a (T,)) -> &'b T {
1111
| -- -- lifetime `'b` defined here
1212
| |
1313
| lifetime `'a` defined here
1414
LL | match (&t,) { //~ ERROR cannot infer an appropriate lifetime
1515
LL | ((u,),) => u,
16-
| ^ requires that `'a` must outlive `'b`
16+
| ^ returning this value requires that `'a` must outlive `'b`
1717

1818
error: aborting due to previous error
1919

src/test/ui/issues/issue-52533-1.nll.stderr

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ error: unsatisfied lifetime constraints
88
--> $DIR/issue-52533-1.rs:19:18
99
|
1010
LL | gimme(|x, y| y)
11-
| - - ^ closure was supposed to return data with lifetime `'1` but it is returning data with lifetime `'2`
11+
| - - ^ closure was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
1212
| | |
1313
| | has type `&Foo<'_, '1, u32>`
1414
| has type `&Foo<'_, '2, u32>`

src/test/ui/issues/issue-52533.nll.stderr

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ error: unsatisfied lifetime constraints
88
--> $DIR/issue-52533.rs:15:16
99
|
1010
LL | foo(|a, b| b)
11-
| - - ^ closure was supposed to return data with lifetime `'1` but it is returning data with lifetime `'2`
11+
| - - ^ closure was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
1212
| | |
1313
| | has type `&'1 u32`
1414
| has type `&'2 u32`

src/test/ui/lifetimes/lifetime-errors/42701_one_named_and_one_anonymous.nll.stderr

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,13 @@ LL | &*x //~ ERROR explicit lifetime
55
| ^^^
66

77
error[E0621]: explicit lifetime required in the type of `x`
8-
--> $DIR/42701_one_named_and_one_anonymous.rs:16:5
8+
--> $DIR/42701_one_named_and_one_anonymous.rs:20:9
99
|
10-
LL | fn foo2<'a>(a: &'a Foo, x: &i32) -> &'a i32 {
11-
| ---- help: add explicit lifetime `'a` to the type of `x`: `&'a i32`
12-
LL | / if true {
13-
LL | | let p: &i32 = &a.field;
14-
LL | | &*p
15-
LL | | } else {
16-
LL | | &*x //~ ERROR explicit lifetime
17-
LL | | }
18-
| |_____^ lifetime `'a` required
10+
LL | fn foo2<'a>(a: &'a Foo, x: &i32) -> &'a i32 {
11+
| ---- help: add explicit lifetime `'a` to the type of `x`: `&'a i32`
12+
...
13+
LL | &*x //~ ERROR explicit lifetime
14+
| ^^^ lifetime `'a` required
1915

2016
error: aborting due to previous error
2117

src/test/ui/lifetimes/lifetime-errors/ex1-return-one-existing-name-early-bound-in-struct.nll.stderr

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,13 @@ LL | other //~ ERROR explicit lifetime
55
| ^^^^^
66

77
error[E0621]: explicit lifetime required in the type of `other`
8-
--> $DIR/ex1-return-one-existing-name-early-bound-in-struct.rs:18:15
8+
--> $DIR/ex1-return-one-existing-name-early-bound-in-struct.rs:21:21
99
|
1010
LL | fn bar(&self, other: Foo) -> Foo<'a> {
1111
| --- help: add explicit lifetime `'a` to the type of `other`: `Foo<'a>`
12-
LL | match *self {
13-
| ^^^^^ lifetime `'a` required
12+
...
13+
LL | other //~ ERROR explicit lifetime
14+
| ^^^^^ lifetime `'a` required
1415

1516
error: aborting due to previous error
1617

src/test/ui/lifetimes/lifetime-errors/ex1-return-one-existing-name-if-else-2.nll.stderr

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ LL | if x > y { x } else { y } //~ ERROR explicit lifetime
55
| ^
66

77
error[E0621]: explicit lifetime required in the type of `x`
8-
--> $DIR/ex1-return-one-existing-name-if-else-2.rs:12:8
8+
--> $DIR/ex1-return-one-existing-name-if-else-2.rs:12:16
99
|
1010
LL | fn foo<'a>(x: &i32, y: &'a i32) -> &'a i32 {
1111
| ---- help: add explicit lifetime `'a` to the type of `x`: `&'a i32`
1212
LL | if x > y { x } else { y } //~ ERROR explicit lifetime
13-
| ^^^^^ lifetime `'a` required
13+
| ^ lifetime `'a` required
1414

1515
error: aborting due to previous error
1616

src/test/ui/lifetimes/lifetime-errors/ex1-return-one-existing-name-if-else-3.nll.stderr

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ LL | if x > y { x } else { y } //~ ERROR explicit lifetime
55
| ^
66

77
error[E0621]: explicit lifetime required in parameter type
8-
--> $DIR/ex1-return-one-existing-name-if-else-3.rs:11:16
8+
--> $DIR/ex1-return-one-existing-name-if-else-3.rs:12:27
99
|
1010
LL | fn foo<'a>((x, y): (&'a i32, &i32)) -> &'a i32 {
11-
| ^ --------------- help: add explicit lifetime `'a` to type: `(&'a i32, &'a i32)`
12-
| |
13-
| lifetime `'a` required
11+
| --------------- help: add explicit lifetime `'a` to type: `(&'a i32, &'a i32)`
12+
LL | if x > y { x } else { y } //~ ERROR explicit lifetime
13+
| ^ lifetime `'a` required
1414

1515
error: aborting due to previous error
1616

src/test/ui/lifetimes/lifetime-errors/ex1-return-one-existing-name-if-else-using-impl-2.nll.stderr

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ LL | if x > y { x } else { y } //~ ERROR explicit lifetime
55
| ^
66

77
error[E0621]: explicit lifetime required in the type of `x`
8-
--> $DIR/ex1-return-one-existing-name-if-else-using-impl-2.rs:14:7
8+
--> $DIR/ex1-return-one-existing-name-if-else-using-impl-2.rs:14:15
99
|
1010
LL | fn foo<'a>(x: &i32, y: &'a i32) -> &'a i32 {
1111
| ---- help: add explicit lifetime `'a` to the type of `x`: `&'a i32`
1212
LL | if x > y { x } else { y } //~ ERROR explicit lifetime
13-
| ^^^^^ lifetime `'a` required
13+
| ^ lifetime `'a` required
1414

1515
error: aborting due to previous error
1616

src/test/ui/lifetimes/lifetime-errors/ex1-return-one-existing-name-if-else-using-impl-3.nll.stderr

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ LL | if true { &self.field } else { x } //~ ERROR explicit lifetime
55
| ^
66

77
error[E0621]: explicit lifetime required in the type of `x`
8-
--> $DIR/ex1-return-one-existing-name-if-else-using-impl-3.rs:18:5
8+
--> $DIR/ex1-return-one-existing-name-if-else-using-impl-3.rs:18:36
99
|
1010
LL | fn foo<'a>(&'a self, x: &i32) -> &i32 {
1111
| ---- help: add explicit lifetime `'a` to the type of `x`: `&'a i32`
1212
LL |
1313
LL | if true { &self.field } else { x } //~ ERROR explicit lifetime
14-
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ lifetime `'a` required
14+
| ^ lifetime `'a` required
1515

1616
error: aborting due to previous error
1717

src/test/ui/lifetimes/lifetime-errors/ex1-return-one-existing-name-if-else-using-impl.nll.stderr

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@ LL | if x > y { x } else { y } //~ ERROR lifetime mismatch
55
| ^
66

77
error: unsatisfied lifetime constraints
8-
--> $DIR/ex1-return-one-existing-name-if-else-using-impl.rs:21:12
8+
--> $DIR/ex1-return-one-existing-name-if-else-using-impl.rs:21:20
99
|
1010
LL | fn foo<'a>(x: &i32, y: &'a i32) -> &'a i32 {
1111
| -- - let's call the lifetime of this reference `'1`
1212
| |
1313
| lifetime `'a` defined here
1414
LL |
1515
LL | if x > y { x } else { y } //~ ERROR lifetime mismatch
16-
| ^^^^^ requires that `'1` must outlive `'a`
16+
| ^ function was supposed to return data with lifetime `'a` but it is returning data with lifetime `'1`
1717

1818
error: aborting due to previous error
1919

src/test/ui/lifetimes/lifetime-errors/ex1-return-one-existing-name-if-else.nll.stderr

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ LL | if x > y { x } else { y } //~ ERROR explicit lifetime
55
| ^
66

77
error[E0621]: explicit lifetime required in the type of `y`
8-
--> $DIR/ex1-return-one-existing-name-if-else.rs:12:8
8+
--> $DIR/ex1-return-one-existing-name-if-else.rs:12:27
99
|
1010
LL | fn foo<'a>(x: &'a i32, y: &i32) -> &'a i32 {
1111
| ---- help: add explicit lifetime `'a` to the type of `y`: `&'a i32`
1212
LL | if x > y { x } else { y } //~ ERROR explicit lifetime
13-
| ^^^^^ lifetime `'a` required
13+
| ^ lifetime `'a` required
1414

1515
error: aborting due to previous error
1616

src/test/ui/lifetimes/lifetime-errors/ex1-return-one-existing-name-return-type-is-anon.nll.stderr

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ LL | fn foo<'a>(&self, x: &'a i32) -> &i32 {
1313
| lifetime `'a` defined here
1414
LL |
1515
LL | x //~ ERROR lifetime mismatch
16-
| ^ function was supposed to return data with lifetime `'a` but it is returning data with lifetime `'1`
16+
| ^ function was supposed to return data with lifetime `'1` but it is returning data with lifetime `'a`
1717

1818
error: aborting due to previous error
1919

src/test/ui/lifetimes/lifetime-errors/ex1-return-one-existing-name-self-is-anon.nll.stderr

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@ LL | if true { x } else { self } //~ ERROR lifetime mismatch
55
| ^^^^
66

77
error: unsatisfied lifetime constraints
8-
--> $DIR/ex1-return-one-existing-name-self-is-anon.rs:18:9
8+
--> $DIR/ex1-return-one-existing-name-self-is-anon.rs:18:30
99
|
1010
LL | fn foo<'a>(&self, x: &'a Foo) -> &'a Foo {
1111
| -- - let's call the lifetime of this reference `'1`
1212
| |
1313
| lifetime `'a` defined here
1414
LL |
1515
LL | if true { x } else { self } //~ ERROR lifetime mismatch
16-
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ requires that `'1` must outlive `'a`
16+
| ^^^^ function was supposed to return data with lifetime `'a` but it is returning data with lifetime `'1`
1717

1818
error: aborting due to previous error
1919

src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-return-type-is-anon.nll.stderr

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ LL | fn foo<'a>(&self, x: &i32) -> &i32 {
1212
| |
1313
| let's call the lifetime of this reference `'2`
1414
LL | x //~ ERROR lifetime mismatch
15-
| ^ function was supposed to return data with lifetime `'1` but it is returning data with lifetime `'2`
15+
| ^ function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
1616

1717
error: aborting due to previous error
1818

src/test/ui/lifetimes/lifetime-errors/ex3-both-anon-regions-self-is-anon.nll.stderr

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@ LL | if true { x } else { self } //~ ERROR lifetime mismatch
55
| ^
66

77
error: unsatisfied lifetime constraints
8-
--> $DIR/ex3-both-anon-regions-self-is-anon.rs:17:9
8+
--> $DIR/ex3-both-anon-regions-self-is-anon.rs:17:19
99
|
1010
LL | fn foo<'a>(&self, x: &Foo) -> &Foo {
1111
| - - let's call the lifetime of this reference `'1`
1212
| |
1313
| let's call the lifetime of this reference `'2`
1414
LL | if true { x } else { self } //~ ERROR lifetime mismatch
15-
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ requires that `'1` must outlive `'2`
15+
| ^ function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
1616

1717
error: aborting due to previous error
1818

src/test/ui/nll/closure-requirements/region-lbr-named-does-not-outlive-static.stderr

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ error: unsatisfied lifetime constraints
1010
LL | fn foo<'a>(x: &'a u32) -> &'static u32 {
1111
| -- lifetime `'a` defined here
1212
LL | &*x
13-
| ^^^ requires that `'a` must outlive `'static`
13+
| ^^^ returning this value requires that `'a` must outlive `'static`
1414

1515
error: aborting due to previous error
1616

src/test/ui/nll/closure-requirements/region-lbr1-does-not-outlive-ebr2.stderr

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ LL | fn foo<'a, 'b>(x: &'a u32, y: &'b u32) -> &'b u32 {
1212
| |
1313
| lifetime `'a` defined here
1414
LL | &*x
15-
| ^^^ requires that `'a` must outlive `'b`
15+
| ^^^ function was supposed to return data with lifetime `'b` but it is returning data with lifetime `'a`
1616

1717
error: aborting due to previous error
1818

src/test/ui/nll/closure-requirements/return-wrong-bound-region.stderr

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ error: unsatisfied lifetime constraints
1919
--> $DIR/return-wrong-bound-region.rs:21:23
2020
|
2121
LL | expect_sig(|a, b| b); // ought to return `a`
22-
| - - ^ closure was supposed to return data with lifetime `'1` but it is returning data with lifetime `'2`
22+
| - - ^ closure was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
2323
| | |
2424
| | has type `&'1 i32`
2525
| has type `&'2 i32`

src/test/ui/nll/issue-48238.stderr

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ error: unsatisfied lifetime constraints
22
--> $DIR/issue-48238.rs:21:13
33
|
44
LL | move || use_val(&orig); //~ ERROR
5-
| ------- ^^^^^^^^^^^^^^ argument requires that `'1` must outlive `'2`
5+
| ------- ^^^^^^^^^^^^^^ returning this value requires that `'1` must outlive `'2`
66
| | |
77
| | return type of closure is &'2 u8
88
| lifetime `'1` represents this closure's body

src/test/ui/nll/mir_check_cast_closure.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414

1515
fn bar<'a, 'b>() -> fn(&'a u32, &'b u32) -> &'a u32 {
1616
let g: fn(_, _) -> _ = |_x, y| y;
17-
//~^ ERROR unsatisfied lifetime constraints
1817
g
1918
//~^ WARNING not reporting region error due to nll
19+
//~^^ ERROR unsatisfied lifetime constraints
2020
}
2121

2222
fn main() {}
Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
warning: not reporting region error due to nll
2-
--> $DIR/mir_check_cast_closure.rs:18:5
2+
--> $DIR/mir_check_cast_closure.rs:17:5
33
|
44
LL | g
55
| ^
66

77
error: unsatisfied lifetime constraints
8-
--> $DIR/mir_check_cast_closure.rs:16:28
8+
--> $DIR/mir_check_cast_closure.rs:17:5
99
|
1010
LL | fn bar<'a, 'b>() -> fn(&'a u32, &'b u32) -> &'a u32 {
1111
| -- -- lifetime `'b` defined here
1212
| |
1313
| lifetime `'a` defined here
1414
LL | let g: fn(_, _) -> _ = |_x, y| y;
15-
| ^^^^^^^^^ cast requires that `'b` must outlive `'a`
15+
LL | g
16+
| ^ returning this value requires that `'b` must outlive `'a`
1617

1718
error: aborting due to previous error
1819

0 commit comments

Comments
 (0)