@@ -63,122 +63,60 @@ LL + if let Some(&Some(x)) = &mut Some(&Some(0)) {
63
63
|
64
64
65
65
error[E0308]: mismatched types
66
- --> $DIR/well-typed-edition-2024.rs:96:10
66
+ --> $DIR/well-typed-edition-2024.rs:123:15
67
67
|
68
- LL | let [&mut x] = &mut [&0];
69
- | ^^^^^^ --------- this expression has type `&mut [&{integer}; 1]`
70
- | |
71
- | types differ in mutability
72
- |
73
- = note: expected reference `&{integer}`
74
- found mutable reference `&mut _`
75
- note: to declare a mutable binding use: `mut x`
76
- --> $DIR/well-typed-edition-2024.rs:96:10
77
- |
78
- LL | let [&mut x] = &mut [&0];
79
- | ^^^^^^
80
- help: consider removing `&mut` from the pattern
81
- |
82
- LL - let [&mut x] = &mut [&0];
83
- LL + let [x] = &mut [&0];
84
- |
85
-
86
- error[E0308]: mismatched types
87
- --> $DIR/well-typed-edition-2024.rs:102:10
88
- |
89
- LL | let [&mut ref x] = &mut [&0];
90
- | ^^^^^^^^^^ --------- this expression has type `&mut [&{integer}; 1]`
91
- | |
92
- | types differ in mutability
93
- |
94
- = note: expected reference `&{integer}`
95
- found mutable reference `&mut _`
96
- note: to declare a mutable binding use: `mut x`
97
- --> $DIR/well-typed-edition-2024.rs:102:10
98
- |
99
- LL | let [&mut ref x] = &mut [&0];
100
- | ^^^^^^^^^^
101
- help: consider removing `&mut` from the pattern
102
- |
103
- LL - let [&mut ref x] = &mut [&0];
104
- LL + let [ref x] = &mut [&0];
105
- |
106
-
107
- error[E0308]: mismatched types
108
- --> $DIR/well-typed-edition-2024.rs:117:10
109
- |
110
- LL | let [&mut mut x] = &mut [&0];
111
- | ^^^^^^^^^^ --------- this expression has type `&mut [&{integer}; 1]`
112
- | |
113
- | types differ in mutability
114
- |
115
- = note: expected reference `&{integer}`
116
- found mutable reference `&mut _`
117
- note: to declare a mutable binding use: `mut x`
118
- --> $DIR/well-typed-edition-2024.rs:117:10
68
+ LL | let [&mut &x] = &mut [&0];
69
+ | ^^ --------- this expression has type `&mut [&{integer}; 1]`
70
+ | |
71
+ | expected integer, found `&_`
119
72
|
120
- LL | let [&mut mut x] = &mut [&0];
121
- | ^^^^^^^^^^
122
- help: consider removing `&mut ` from the pattern
73
+ = note: expected type `{integer}`
74
+ found reference `&_`
75
+ help: consider removing `&` from the pattern
123
76
|
124
- LL - let [&mut mut x] = &mut [&0];
125
- LL + let [mut x] = &mut [&0];
77
+ LL - let [&mut & x] = &mut [&0];
78
+ LL + let [& mut x] = &mut [&0];
126
79
|
127
80
128
81
error[E0308]: mismatched types
129
- --> $DIR/well-typed-edition-2024.rs:123:10
82
+ --> $DIR/well-typed-edition-2024.rs:129:15
130
83
|
131
- LL | let [&mut &x] = &mut [&0];
132
- | ^ ^^^^^^ --------- this expression has type `&mut [&{integer}; 1]`
133
- | |
134
- | types differ in mutability
84
+ LL | let [&mut &ref x] = &mut [&0];
85
+ | ^^^^^^ --------- this expression has type `&mut [&{integer}; 1]`
86
+ | |
87
+ | expected integer, found `&_`
135
88
|
136
- = note: expected reference `&{integer}`
137
- found mutable reference `&mut _`
138
-
139
- error[E0308]: mismatched types
140
- --> $DIR/well-typed-edition-2024.rs:129:10
89
+ = note: expected type `{integer}`
90
+ found reference `&_`
91
+ help: consider removing `&` from the pattern
141
92
|
142
- LL | let [&mut &ref x] = &mut [&0];
143
- | ^^^^^^^^^^^ --------- this expression has type `&mut [&{integer}; 1]`
144
- | |
145
- | types differ in mutability
93
+ LL - let [&mut &ref x] = &mut [&0];
94
+ LL + let [&mut ref x] = &mut [&0];
146
95
|
147
- = note: expected reference `&{integer}`
148
- found mutable reference `&mut _`
149
96
150
97
error[E0308]: mismatched types
151
- --> $DIR/well-typed-edition-2024.rs:135:10
98
+ --> $DIR/well-typed-edition-2024.rs:135:15
152
99
|
153
100
LL | let [&mut &(mut x)] = &mut [&0];
154
- | ^^^^^ ^^^^^^^^ --------- this expression has type `&mut [&{integer}; 1]`
155
- | |
156
- | types differ in mutability
101
+ | ^^^^^^^^ --------- this expression has type `&mut [&{integer}; 1]`
102
+ | |
103
+ | expected integer, found `&_`
157
104
|
158
- = note: expected reference `&{integer}`
159
- found mutable reference `&mut _`
160
-
161
- error[E0308]: mismatched types
162
- --> $DIR/well-typed-edition-2024.rs:109:14
105
+ = note: expected type `{integer}`
106
+ found reference `&_`
107
+ help: consider removing `&` from the pattern
163
108
|
164
- LL | let [&mut ref mut x] = &mut [&0];
165
- | ^^^^^^^^^^^^^^ --------- this expression has type `&mut [&{integer}; 1]`
166
- | |
167
- | types differ in mutability
109
+ LL - let [&mut &(mut x)] = &mut [&0];
110
+ LL + let [&mut mut x)] = &mut [&0];
168
111
|
169
- = note: expected reference `&{integer}`
170
- found mutable reference `&mut _`
171
- note: to declare a mutable binding use: `mut x`
172
- --> $DIR/well-typed-edition-2024.rs:109:14
112
+
113
+ error[E0596]: cannot borrow data in a `&` reference as mutable
114
+ --> $DIR/well-typed-edition-2024.rs:109:19
173
115
|
174
116
LL | let [&mut ref mut x] = &mut [&0];
175
- | ^^^^^^^^^^^^^^
176
- help: consider removing `&mut` from the pattern
177
- |
178
- LL - let [&mut ref mut x] = &mut [&0];
179
- LL + let [ref mut x] = &mut [&0];
180
- |
117
+ | ^^^^^^^^^ cannot borrow as mutable
181
118
182
- error: aborting due to 11 previous errors
119
+ error: aborting due to 8 previous errors
183
120
184
- For more information about this error, try `rustc --explain E0308`.
121
+ Some errors have detailed explanations: E0308, E0596.
122
+ For more information about an error, try `rustc --explain E0308`.
0 commit comments