Skip to content

Commit 67c7fd7

Browse files
committed
Improve code examples for E0383 long diagnostic.
1 parent 9c0d2b2 commit 67c7fd7

File tree

1 file changed

+7
-10
lines changed

1 file changed

+7
-10
lines changed

src/librustc_borrowck/diagnostics.rs

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -142,23 +142,20 @@ E0383: r##"
142142
This error occurs when an attempt is made to partially reinitialize a
143143
structure that is currently uninitialized.
144144
145-
For example, this can happen when a transfer of ownership has taken place:
145+
For example, this can happen when a drop has taken place:
146146
147147
```
148-
let mut t = Test { a: 1, b: None};
149-
let mut u = Test { a: 2, b: Some(Box::new(t))}; // `t` is now uninitialized
150-
// because ownership has been
151-
// transferred
152-
t.b = Some(Box::new(u)); // error, partial reinitialization of uninitialized
153-
// structure `t`
148+
let mut x = Foo { a: 1 };
149+
drop(x); // `x` is now uninitialized
150+
x.a = 2; // error, partial reinitialization of uninitialized structure `t`
154151
```
155152
156153
This error can be fixed by fully reinitializing the structure in question:
157154
158155
```
159-
let mut t = Test { a: 1, b: None};
160-
let mut u = Test { a: 2, b: Some(Box::new(t))};
161-
t = Test { a: 1, b: Some(Box::new(u))};
156+
let mut x = Foo { a: 1 };
157+
drop(x);
158+
x = Foo { a: 2 };
162159
```
163160
"##,
164161

0 commit comments

Comments
 (0)