Skip to content

Commit fa18606

Browse files
compiler: Fully stabilize result_ffi_guarantees
1 parent 8069f8d commit fa18606

7 files changed

Lines changed: 33 additions & 424 deletions

File tree

‎compiler/rustc_feature/src/accepted.rs‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -353,6 +353,9 @@ declare_features! (
353353
(accepted, repr_packed,"1.33.0",Some(33158)),
354354
/// Allows `#[repr(transparent)]` attribute on newtype structs.
355355
(accepted, repr_transparent,"1.28.0",Some(43036)),
356+
/// Allows enums like Result<T, E> to be used across FFI, if T's niche value can
357+
/// be used to describe E or vice-versa.
358+
(accepted, result_ffi_guarantees,"1.80.0",Some(110503)),
356359
/// Allows return-position `impl Trait` in traits.
357360
(accepted, return_position_impl_trait_in_trait,"1.75.0",Some(91611)),
358361
/// Allows code like `let x: &'static u32 = &42` to work (RFC 1414).

‎compiler/rustc_feature/src/unstable.rs‎

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -580,9 +580,6 @@ declare_features! (
580580
(incomplete, repr128,"1.16.0",Some(56071)),
581581
/// Allows `repr(simd)` and importing the various simd intrinsics.
582582
(unstable, repr_simd,"1.4.0",Some(27731)),
583-
/// Allows enums like Result<T, E> to be used across FFI, if T's niche value can
584-
/// be used to describe E or vise-versa.
585-
(unstable, result_ffi_guarantees,"1.80.0",Some(110503)),
586583
/// Allows bounding the return type of AFIT/RPITIT.
587584
(unstable, return_type_notation,"1.70.0",Some(109417)),
588585
/// Allows `extern "rust-cold"`.

‎compiler/rustc_lint/src/types.rs‎

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -741,10 +741,6 @@ pub(crate) fn repr_nullable_ptr<'tcx>(
741741
[var_one, var_two] => match(&var_one.fields.raw[..],&var_two.fields.raw[..]){
742742
([],[field]) | ([field],[]) => field.ty(tcx, args),
743743
([field1],[field2]) => {
744-
if !tcx.features().result_ffi_guarantees{
745-
returnNone;
746-
}
747-
748744
let ty1 = field1.ty(tcx, args);
749745
let ty2 = field2.ty(tcx, args);
750746

‎tests/ui/feature-gates/feature-gate-result_ffi_guarantees.stderr‎

Lines changed: 0 additions & 349 deletions
This file was deleted.

‎tests/ui/lint/lint-ctypes-enum.rs‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
#![deny(improper_ctypes)]
33
#![feature(ptr_internals)]
44
#![feature(transparent_unions)]
5-
#![feature(result_ffi_guarantees)]
65

76
use std::num;
87

‎tests/ui/lint/lint-ctypes-enum.stderr‎

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
error: `extern` block uses type `U`, which is not FFI-safe
2-
--> $DIR/lint-ctypes-enum.rs:69:14
2+
--> $DIR/lint-ctypes-enum.rs:68:14
33
|
44
LL | fn uf(x: U);
55
| ^ not FFI-safe
66
|
77
= help: consider adding a `#[repr(C)]`, `#[repr(transparent)]`, or integer `#[repr(...)]` attribute to this enum
88
= note: enum has no representation hint
99
note: the type is defined here
10-
--> $DIR/lint-ctypes-enum.rs:10:1
10+
--> $DIR/lint-ctypes-enum.rs:9:1
1111
|
1212
LL | enum U {
1313
| ^^^^^^
@@ -18,51 +18,51 @@ LL | #![deny(improper_ctypes)]
1818
| ^^^^^^^^^^^^^^^
1919

2020
error: `extern` block uses type `B`, which is not FFI-safe
21-
--> $DIR/lint-ctypes-enum.rs:70:14
21+
--> $DIR/lint-ctypes-enum.rs:69:14
2222
|
2323
LL | fn bf(x: B);
2424
| ^ not FFI-safe
2525
|
2626
= help: consider adding a `#[repr(C)]`, `#[repr(transparent)]`, or integer `#[repr(...)]` attribute to this enum
2727
= note: enum has no representation hint
2828
note: the type is defined here
29-
--> $DIR/lint-ctypes-enum.rs:13:1
29+
--> $DIR/lint-ctypes-enum.rs:12:1
3030
|
3131
LL | enum B {
3232
| ^^^^^^
3333

3434
error: `extern` block uses type `T`, which is not FFI-safe
35-
--> $DIR/lint-ctypes-enum.rs:71:14
35+
--> $DIR/lint-ctypes-enum.rs:70:14
3636
|
3737
LL | fn tf(x: T);
3838
| ^ not FFI-safe
3939
|
4040
= help: consider adding a `#[repr(C)]`, `#[repr(transparent)]`, or integer `#[repr(...)]` attribute to this enum
4141
= note: enum has no representation hint
4242
note: the type is defined here
43-
--> $DIR/lint-ctypes-enum.rs:17:1
43+
--> $DIR/lint-ctypes-enum.rs:16:1
4444
|
4545
LL | enum T {
4646
| ^^^^^^
4747

4848
error: `extern` block uses type `u128`, which is not FFI-safe
49-
--> $DIR/lint-ctypes-enum.rs:83:31
49+
--> $DIR/lint-ctypes-enum.rs:82:31
5050
|
5151
LL | fn option_nonzero_u128(x: Option<num::NonZero<u128>>);
5252
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
5353
|
5454
= note: 128-bit integers don't currently have a known stable ABI
5555

5656
error: `extern` block uses type `i128`, which is not FFI-safe
57-
--> $DIR/lint-ctypes-enum.rs:90:31
57+
--> $DIR/lint-ctypes-enum.rs:89:31
5858
|
5959
LL | fn option_nonzero_i128(x: Option<num::NonZero<i128>>);
6060
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
6161
|
6262
= note: 128-bit integers don't currently have a known stable ABI
6363

6464
error: `extern` block uses type `Option<TransparentUnion<NonZero<u8>>>`, which is not FFI-safe
65-
--> $DIR/lint-ctypes-enum.rs:95:36
65+
--> $DIR/lint-ctypes-enum.rs:94:36
6666
|
6767
LL | fn option_transparent_union(x: Option<TransparentUnion<num::NonZero<u8>>>);
6868
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
@@ -71,7 +71,7 @@ LL | fn option_transparent_union(x: Option<TransparentUnion<num::NonZero<u8>
7171
= note: enum has no representation hint
7272

7373
error: `extern` block uses type `Option<Rust<NonZero<u8>>>`, which is not FFI-safe
74-
--> $DIR/lint-ctypes-enum.rs:97:28
74+
--> $DIR/lint-ctypes-enum.rs:96:28
7575
|
7676
LL | fn option_repr_rust(x: Option<Rust<num::NonZero<u8>>>);
7777
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
@@ -80,23 +80,23 @@ LL | fn option_repr_rust(x: Option<Rust<num::NonZero<u8>>>);
8080
= note: enum has no representation hint
8181

8282
error: `extern` block uses type `u128`, which is not FFI-safe
83-
--> $DIR/lint-ctypes-enum.rs:107:33
83+
--> $DIR/lint-ctypes-enum.rs:106:33
8484
|
8585
LL | fn result_nonzero_u128_t(x: Result<num::NonZero<u128>, ()>);
8686
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
8787
|
8888
= note: 128-bit integers don't currently have a known stable ABI
8989

9090
error: `extern` block uses type `i128`, which is not FFI-safe
91-
--> $DIR/lint-ctypes-enum.rs:114:33
91+
--> $DIR/lint-ctypes-enum.rs:113:33
9292
|
9393
LL | fn result_nonzero_i128_t(x: Result<num::NonZero<i128>, ()>);
9494
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
9595
|
9696
= note: 128-bit integers don't currently have a known stable ABI
9797

9898
error: `extern` block uses type `Result<TransparentUnion<NonZero<u8>>, ()>`, which is not FFI-safe
99-
--> $DIR/lint-ctypes-enum.rs:119:38
99+
--> $DIR/lint-ctypes-enum.rs:118:38
100100
|
101101
LL | fn result_transparent_union_t(x: Result<TransparentUnion<num::NonZero<u8>>, ()>);
102102
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
@@ -105,7 +105,7 @@ LL | fn result_transparent_union_t(x: Result<TransparentUnion<num::NonZero<u
105105
= note: enum has no representation hint
106106

107107
error: `extern` block uses type `Result<Rust<NonZero<u8>>, ()>`, which is not FFI-safe
108-
--> $DIR/lint-ctypes-enum.rs:121:30
108+
--> $DIR/lint-ctypes-enum.rs:120:30
109109
|
110110
LL | fn result_repr_rust_t(x: Result<Rust<num::NonZero<u8>>, ()>);
111111
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
@@ -114,7 +114,7 @@ LL | fn result_repr_rust_t(x: Result<Rust<num::NonZero<u8>>, ()>);
114114
= note: enum has no representation hint
115115

116116
error: `extern` block uses type `Result<NonZero<u8>, U>`, which is not FFI-safe
117-
--> $DIR/lint-ctypes-enum.rs:125:51
117+
--> $DIR/lint-ctypes-enum.rs:124:51
118118
|
119119
LL | fn result_1zst_exhaustive_single_variant_t(x: Result<num::NonZero<u8>, U>);
120120
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
@@ -123,7 +123,7 @@ LL | fn result_1zst_exhaustive_single_variant_t(x: Result<num::NonZero<u8>,
123123
= note: enum has no representation hint
124124

125125
error: `extern` block uses type `Result<NonZero<u8>, B>`, which is not FFI-safe
126-
--> $DIR/lint-ctypes-enum.rs:127:53
126+
--> $DIR/lint-ctypes-enum.rs:126:53
127127
|
128128
LL | fn result_1zst_exhaustive_multiple_variant_t(x: Result<num::NonZero<u8>, B>);
129129
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
@@ -132,7 +132,7 @@ LL | fn result_1zst_exhaustive_multiple_variant_t(x: Result<num::NonZero<u8>
132132
= note: enum has no representation hint
133133

134134
error: `extern` block uses type `Result<NonZero<u8>, NonExhaustive>`, which is not FFI-safe
135-
--> $DIR/lint-ctypes-enum.rs:129:51
135+
--> $DIR/lint-ctypes-enum.rs:128:51
136136
|
137137
LL | fn result_1zst_non_exhaustive_no_variant_t(x: Result<num::NonZero<u8>, NonExhaustive>);
138138
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
@@ -141,7 +141,7 @@ LL | fn result_1zst_non_exhaustive_no_variant_t(x: Result<num::NonZero<u8>,
141141
= note: enum has no representation hint
142142

143143
error: `extern` block uses type `Result<NonZero<u8>, Field>`, which is not FFI-safe
144-
--> $DIR/lint-ctypes-enum.rs:132:49
144+
--> $DIR/lint-ctypes-enum.rs:131:49
145145
|
146146
LL | fn result_1zst_exhaustive_single_field_t(x: Result<num::NonZero<u8>, Field>);
147147
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
@@ -150,7 +150,7 @@ LL | fn result_1zst_exhaustive_single_field_t(x: Result<num::NonZero<u8>, Fi
150150
= note: enum has no representation hint
151151

152152
error: `extern` block uses type `Result<Result<(), NonZero<u8>>, ()>`, which is not FFI-safe
153-
--> $DIR/lint-ctypes-enum.rs:134:30
153+
--> $DIR/lint-ctypes-enum.rs:133:30
154154
|
155155
LL | fn result_cascading_t(x: Result<Result<(), num::NonZero<u8>>, ()>);
156156
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
@@ -159,23 +159,23 @@ LL | fn result_cascading_t(x: Result<Result<(), num::NonZero<u8>>, ()>);
159159
= note: enum has no representation hint
160160

161161
error: `extern` block uses type `u128`, which is not FFI-safe
162-
--> $DIR/lint-ctypes-enum.rs:145:33
162+
--> $DIR/lint-ctypes-enum.rs:144:33
163163
|
164164
LL | fn result_nonzero_u128_e(x: Result<(), num::NonZero<u128>>);
165165
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
166166
|
167167
= note: 128-bit integers don't currently have a known stable ABI
168168

169169
error: `extern` block uses type `i128`, which is not FFI-safe
170-
--> $DIR/lint-ctypes-enum.rs:152:33
170+
--> $DIR/lint-ctypes-enum.rs:151:33
171171
|
172172
LL | fn result_nonzero_i128_e(x: Result<(), num::NonZero<i128>>);
173173
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
174174
|
175175
= note: 128-bit integers don't currently have a known stable ABI
176176

177177
error: `extern` block uses type `Result<(), TransparentUnion<NonZero<u8>>>`, which is not FFI-safe
178-
--> $DIR/lint-ctypes-enum.rs:157:38
178+
--> $DIR/lint-ctypes-enum.rs:156:38
179179
|
180180
LL | fn result_transparent_union_e(x: Result<(), TransparentUnion<num::NonZero<u8>>>);
181181
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
@@ -184,7 +184,7 @@ LL | fn result_transparent_union_e(x: Result<(), TransparentUnion<num::NonZe
184184
= note: enum has no representation hint
185185

186186
error: `extern` block uses type `Result<(), Rust<NonZero<u8>>>`, which is not FFI-safe
187-
--> $DIR/lint-ctypes-enum.rs:159:30
187+
--> $DIR/lint-ctypes-enum.rs:158:30
188188
|
189189
LL | fn result_repr_rust_e(x: Result<(), Rust<num::NonZero<u8>>>);
190190
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
@@ -193,7 +193,7 @@ LL | fn result_repr_rust_e(x: Result<(), Rust<num::NonZero<u8>>>);
193193
= note: enum has no representation hint
194194

195195
error: `extern` block uses type `Result<U, NonZero<u8>>`, which is not FFI-safe
196-
--> $DIR/lint-ctypes-enum.rs:163:51
196+
--> $DIR/lint-ctypes-enum.rs:162:51
197197
|
198198
LL | fn result_1zst_exhaustive_single_variant_e(x: Result<U, num::NonZero<u8>>);
199199
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
@@ -202,7 +202,7 @@ LL | fn result_1zst_exhaustive_single_variant_e(x: Result<U, num::NonZero<u8
202202
= note: enum has no representation hint
203203

204204
error: `extern` block uses type `Result<B, NonZero<u8>>`, which is not FFI-safe
205-
--> $DIR/lint-ctypes-enum.rs:165:53
205+
--> $DIR/lint-ctypes-enum.rs:164:53
206206
|
207207
LL | fn result_1zst_exhaustive_multiple_variant_e(x: Result<B, num::NonZero<u8>>);
208208
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
@@ -211,7 +211,7 @@ LL | fn result_1zst_exhaustive_multiple_variant_e(x: Result<B, num::NonZero<
211211
= note: enum has no representation hint
212212

213213
error: `extern` block uses type `Result<NonExhaustive, NonZero<u8>>`, which is not FFI-safe
214-
--> $DIR/lint-ctypes-enum.rs:167:51
214+
--> $DIR/lint-ctypes-enum.rs:166:51
215215
|
216216
LL | fn result_1zst_non_exhaustive_no_variant_e(x: Result<NonExhaustive, num::NonZero<u8>>);
217217
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
@@ -220,7 +220,7 @@ LL | fn result_1zst_non_exhaustive_no_variant_e(x: Result<NonExhaustive, num
220220
= note: enum has no representation hint
221221

222222
error: `extern` block uses type `Result<Field, NonZero<u8>>`, which is not FFI-safe
223-
--> $DIR/lint-ctypes-enum.rs:170:49
223+
--> $DIR/lint-ctypes-enum.rs:169:49
224224
|
225225
LL | fn result_1zst_exhaustive_single_field_e(x: Result<Field, num::NonZero<u8>>);
226226
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
@@ -229,7 +229,7 @@ LL | fn result_1zst_exhaustive_single_field_e(x: Result<Field, num::NonZero<
229229
= note: enum has no representation hint
230230

231231
error: `extern` block uses type `Result<(), Result<(), NonZero<u8>>>`, which is not FFI-safe
232-
--> $DIR/lint-ctypes-enum.rs:172:30
232+
--> $DIR/lint-ctypes-enum.rs:171:30
233233
|
234234
LL | fn result_cascading_e(x: Result<(), Result<(), num::NonZero<u8>>>);
235235
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
@@ -238,7 +238,7 @@ LL | fn result_cascading_e(x: Result<(), Result<(), num::NonZero<u8>>>);
238238
= note: enum has no representation hint
239239

240240
error: `extern` block uses type `Result<(), ()>`, which is not FFI-safe
241-
--> $DIR/lint-ctypes-enum.rs:174:27
241+
--> $DIR/lint-ctypes-enum.rs:173:27
242242
|
243243
LL | fn result_unit_t_e(x: Result<(), ()>);
244244
| ^^^^^^^^^^^^^^ not FFI-safe

tests/ui/feature-gates/feature-gate-result_ffi_guarantees.rs renamed to tests/ui/rfcs/rfc-3391-result-ffi-guarantees.rs

Lines changed: 1 addition & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
//@ build-pass
12
#![allow(dead_code)]
23
#![deny(improper_ctypes)]
34
#![feature(ptr_internals)]
@@ -18,82 +19,44 @@ struct NoField;
1819

1920
extern"C"{
2021
fnresult_ref_t(x:Result<&'staticu8,()>);
21-
//~^ ERROR `extern` block uses type `Result
2222
fnresult_fn_t(x:Result<extern"C"fn(),()>);
23-
//~^ ERROR `extern` block uses type `Result
2423
fnresult_nonnull_t(x:Result<std::ptr::NonNull<u8>,()>);
25-
//~^ ERROR `extern` block uses type `Result
2624
fnresult_unique_t(x:Result<std::ptr::Unique<u8>,()>);
27-
//~^ ERROR `extern` block uses type `Result
2825
fnresult_nonzero_u8_t(x:Result<num::NonZero<u8>,()>);
29-
//~^ ERROR `extern` block uses type `Result
3026
fnresult_nonzero_u16_t(x:Result<num::NonZero<u16>,()>);
31-
//~^ ERROR `extern` block uses type `Result
3227
fnresult_nonzero_u32_t(x:Result<num::NonZero<u32>,()>);
33-
//~^ ERROR `extern` block uses type `Result
3428
fnresult_nonzero_u64_t(x:Result<num::NonZero<u64>,()>);
35-
//~^ ERROR `extern` block uses type `Result
3629
fnresult_nonzero_usize_t(x:Result<num::NonZero<usize>,()>);
37-
//~^ ERROR `extern` block uses type `Result
3830
fnresult_nonzero_i8_t(x:Result<num::NonZero<i8>,()>);
39-
//~^ ERROR `extern` block uses type `Result
4031
fnresult_nonzero_i16_t(x:Result<num::NonZero<i16>,()>);
41-
//~^ ERROR `extern` block uses type `Result
4232
fnresult_nonzero_i32_t(x:Result<num::NonZero<i32>,()>);
43-
//~^ ERROR `extern` block uses type `Result
4433
fnresult_nonzero_i64_t(x:Result<num::NonZero<i64>,()>);
45-
//~^ ERROR `extern` block uses type `Result
4634
fnresult_nonzero_isize_t(x:Result<num::NonZero<isize>,()>);
47-
//~^ ERROR `extern` block uses type `Result
4835
fnresult_transparent_struct_t(x:Result<TransparentStruct<num::NonZero<u8>>,()>);
49-
//~^ ERROR `extern` block uses type `Result
5036
fnresult_transparent_enum_t(x:Result<TransparentEnum<num::NonZero<u8>>,()>);
51-
//~^ ERROR `extern` block uses type `Result
5237
fnresult_phantom_t(x:Result<num::NonZero<u8>, std::marker::PhantomData<()>>);
53-
//~^ ERROR `extern` block uses type `Result
5438
fnresult_1zst_exhaustive_no_variant_t(x:Result<num::NonZero<u8>,Z>);
55-
//~^ ERROR `extern` block uses type `Result
5639
fnresult_1zst_exhaustive_no_field_t(x:Result<num::NonZero<u8>,NoField>);
57-
//~^ ERROR `extern` block uses type `Result
5840

5941
fnresult_ref_e(x:Result<(),&'staticu8>);
60-
//~^ ERROR `extern` block uses type `Result
6142
fnresult_fn_e(x:Result<(),extern"C"fn()>);
62-
//~^ ERROR `extern` block uses type `Result
6343
fnresult_nonnull_e(x:Result<(), std::ptr::NonNull<u8>>);
64-
//~^ ERROR `extern` block uses type `Result
6544
fnresult_unique_e(x:Result<(), std::ptr::Unique<u8>>);
66-
//~^ ERROR `extern` block uses type `Result
6745
fnresult_nonzero_u8_e(x:Result<(), num::NonZero<u8>>);
68-
//~^ ERROR `extern` block uses type `Result
6946
fnresult_nonzero_u16_e(x:Result<(), num::NonZero<u16>>);
70-
//~^ ERROR `extern` block uses type `Result
7147
fnresult_nonzero_u32_e(x:Result<(), num::NonZero<u32>>);
72-
//~^ ERROR `extern` block uses type `Result
7348
fnresult_nonzero_u64_e(x:Result<(), num::NonZero<u64>>);
74-
//~^ ERROR `extern` block uses type `Result
7549
fnresult_nonzero_usize_e(x:Result<(), num::NonZero<usize>>);
76-
//~^ ERROR `extern` block uses type `Result
7750
fnresult_nonzero_i8_e(x:Result<(), num::NonZero<i8>>);
78-
//~^ ERROR `extern` block uses type `Result
7951
fnresult_nonzero_i16_e(x:Result<(), num::NonZero<i16>>);
80-
//~^ ERROR `extern` block uses type `Result
8152
fnresult_nonzero_i32_e(x:Result<(), num::NonZero<i32>>);
82-
//~^ ERROR `extern` block uses type `Result
8353
fnresult_nonzero_i64_e(x:Result<(), num::NonZero<i64>>);
84-
//~^ ERROR `extern` block uses type `Result
8554
fnresult_nonzero_isize_e(x:Result<(), num::NonZero<isize>>);
86-
//~^ ERROR `extern` block uses type `Result
8755
fnresult_transparent_struct_e(x:Result<(),TransparentStruct<num::NonZero<u8>>>);
88-
//~^ ERROR `extern` block uses type `Result
8956
fnresult_transparent_enum_e(x:Result<(),TransparentEnum<num::NonZero<u8>>>);
90-
//~^ ERROR `extern` block uses type `Result
9157
fnresult_phantom_e(x:Result<num::NonZero<u8>, std::marker::PhantomData<()>>);
92-
//~^ ERROR `extern` block uses type `Result
9358
fnresult_1zst_exhaustive_no_variant_e(x:Result<Z, num::NonZero<u8>>);
94-
//~^ ERROR `extern` block uses type `Result
9559
fnresult_1zst_exhaustive_no_field_e(x:Result<NoField, num::NonZero<u8>>);
96-
//~^ ERROR `extern` block uses type `Result
9760
}
9861

9962
pubfnmain(){}

0 commit comments

Comments
 (0)