@@ -15,10 +15,14 @@ fn default() -> Result<()> {
15
15
#[ cfg( not( feature = "nightly" ) ) ]
16
16
let partial_ord = quote ! {
17
17
const fn __discriminant( __this: & Test ) -> isize {
18
+ const __VALIDATE_ISIZE_A: isize = 0 ;
19
+ const __VALIDATE_ISIZE_B: isize = ( 0 ) + 1 ;
20
+ const __VALIDATE_ISIZE_C: isize = ( 0 ) + 2 ;
21
+
18
22
match __this {
19
- Test :: A => 0 ,
20
- Test :: B => ( 0 ) + 1 ,
21
- Test :: C => ( 0 ) + 2
23
+ Test :: A => __VALIDATE_ISIZE_A ,
24
+ Test :: B => __VALIDATE_ISIZE_B ,
25
+ Test :: C => __VALIDATE_ISIZE_C
22
26
}
23
27
}
24
28
@@ -61,6 +65,10 @@ fn default_clone() -> Result<()> {
61
65
} ;
62
66
#[ cfg( not( feature = "nightly" ) ) ]
63
67
let partial_ord = quote ! {
68
+ const __VALIDATE_ISIZE_A: isize = 0 ;
69
+ const __VALIDATE_ISIZE_B: isize = ( 0 ) + 1 ;
70
+ const __VALIDATE_ISIZE_C: isize = ( 0 ) + 2 ;
71
+
64
72
:: core:: cmp:: PartialOrd :: partial_cmp( & ( :: core:: clone:: Clone :: clone( self ) as isize ) , & ( :: core:: clone:: Clone :: clone( __other) as isize ) )
65
73
} ;
66
74
@@ -111,6 +119,10 @@ fn default_copy() -> Result<()> {
111
119
} ;
112
120
#[ cfg( not( feature = "nightly" ) ) ]
113
121
let partial_ord = quote ! {
122
+ const __VALIDATE_ISIZE_A: isize = 0 ;
123
+ const __VALIDATE_ISIZE_B: isize = ( 0 ) + 1 ;
124
+ const __VALIDATE_ISIZE_C: isize = ( 0 ) + 2 ;
125
+
114
126
:: core:: cmp:: PartialOrd :: partial_cmp( & ( * self as isize ) , & ( * __other as isize ) )
115
127
} ;
116
128
@@ -153,10 +165,14 @@ fn default_reverse() -> Result<()> {
153
165
#[ cfg( not( feature = "nightly" ) ) ]
154
166
let partial_ord = quote ! {
155
167
const fn __discriminant( __this: & Test ) -> isize {
168
+ const __VALIDATE_ISIZE_A: isize = 2 ;
169
+ const __VALIDATE_ISIZE_B: isize = 1 ;
170
+ const __VALIDATE_ISIZE_C: isize = 0 ;
171
+
156
172
match __this {
157
- Test :: A => 2 ,
158
- Test :: B => 1 ,
159
- Test :: C => 0
173
+ Test :: A => __VALIDATE_ISIZE_A ,
174
+ Test :: B => __VALIDATE_ISIZE_B ,
175
+ Test :: C => __VALIDATE_ISIZE_C
160
176
}
161
177
}
162
178
@@ -200,11 +216,16 @@ fn default_mix() -> Result<()> {
200
216
#[ cfg( not( feature = "nightly" ) ) ]
201
217
let partial_ord = quote ! {
202
218
const fn __discriminant( __this: & Test ) -> isize {
219
+ const __VALIDATE_ISIZE_A: isize = 1 ;
220
+ const __VALIDATE_ISIZE_B: isize = 0 ;
221
+ const __VALIDATE_ISIZE_C: isize = 2 ;
222
+ const __VALIDATE_ISIZE_D: isize = ( 2 ) + 1 ;
223
+
203
224
match __this {
204
- Test :: A => 1 ,
205
- Test :: B => 0 ,
206
- Test :: C => 2 ,
207
- Test :: D => ( 2 ) + 1
225
+ Test :: A => __VALIDATE_ISIZE_A ,
226
+ Test :: B => __VALIDATE_ISIZE_B ,
227
+ Test :: C => __VALIDATE_ISIZE_C ,
228
+ Test :: D => __VALIDATE_ISIZE_D
208
229
}
209
230
}
210
231
@@ -249,12 +270,18 @@ fn default_skip() -> Result<()> {
249
270
#[ cfg( not( feature = "nightly" ) ) ]
250
271
let partial_ord = quote ! {
251
272
const fn __discriminant( __this: & Test ) -> isize {
273
+ const __VALIDATE_ISIZE_A: isize = 0 ;
274
+ const __VALIDATE_ISIZE_B: isize = 3 ;
275
+ const __VALIDATE_ISIZE_C: isize = ( 3 ) + 1 ;
276
+ const __VALIDATE_ISIZE_D: isize = ( 3 ) + 2 ;
277
+ const __VALIDATE_ISIZE_E: isize = ( 3 ) + 3 ;
278
+
252
279
match __this {
253
- Test :: A => 0 ,
254
- Test :: B => 3 ,
255
- Test :: C => ( 3 ) + 1 ,
256
- Test :: D => ( 3 ) + 2 ,
257
- Test :: E => ( 3 ) + 3
280
+ Test :: A => __VALIDATE_ISIZE_A ,
281
+ Test :: B => __VALIDATE_ISIZE_B ,
282
+ Test :: C => __VALIDATE_ISIZE_C ,
283
+ Test :: D => __VALIDATE_ISIZE_D ,
284
+ Test :: E => __VALIDATE_ISIZE_E
258
285
}
259
286
}
260
287
@@ -300,10 +327,14 @@ fn default_expr() -> Result<()> {
300
327
#[ cfg( not( feature = "nightly" ) ) ]
301
328
let partial_ord = quote ! {
302
329
const fn __discriminant( __this: & Test ) -> isize {
330
+ const __VALIDATE_ISIZE_A: isize = isize :: MAX - 2 ;
331
+ const __VALIDATE_ISIZE_B: isize = ( isize :: MAX - 2 ) + 1 ;
332
+ const __VALIDATE_ISIZE_C: isize = ( isize :: MAX - 2 ) + 2 ;
333
+
303
334
match __this {
304
- Test :: A => isize :: MAX - 2 ,
305
- Test :: B => ( isize :: MAX - 2 ) + 1 ,
306
- Test :: C => ( isize :: MAX - 2 ) + 2
335
+ Test :: A => __VALIDATE_ISIZE_A ,
336
+ Test :: B => __VALIDATE_ISIZE_B ,
337
+ Test :: C => __VALIDATE_ISIZE_C
307
338
}
308
339
}
309
340
@@ -346,14 +377,15 @@ fn repr_c() -> Result<()> {
346
377
} ;
347
378
#[ cfg( not( feature = "nightly" ) ) ]
348
379
let partial_ord = quote ! {
349
- #[ repr( C ) ]
350
- enum EnsureReprCIsIsize { Test = 0_isize }
351
-
352
380
const fn __discriminant( __this: & Test ) -> isize {
381
+ const __VALIDATE_ISIZE_A: isize = 0 ;
382
+ const __VALIDATE_ISIZE_B: isize = ( 0 ) + 1 ;
383
+ const __VALIDATE_ISIZE_C: isize = ( 0 ) + 2 ;
384
+
353
385
match __this {
354
- Test :: A => 0 ,
355
- Test :: B => ( 0 ) + 1 ,
356
- Test :: C => ( 0 ) + 2
386
+ Test :: A => __VALIDATE_ISIZE_A ,
387
+ Test :: B => __VALIDATE_ISIZE_B ,
388
+ Test :: C => __VALIDATE_ISIZE_C
357
389
}
358
390
}
359
391
@@ -445,8 +477,9 @@ fn repr_c_clone() -> Result<()> {
445
477
} ;
446
478
#[ cfg( not( feature = "nightly" ) ) ]
447
479
let partial_ord = quote ! {
448
- #[ repr( C ) ]
449
- enum EnsureReprCIsIsize { Test = 0_isize }
480
+ const __VALIDATE_ISIZE_A: isize = 0 ;
481
+ const __VALIDATE_ISIZE_B: isize = ( 0 ) + 1 ;
482
+ const __VALIDATE_ISIZE_C: isize = ( 0 ) + 2 ;
450
483
451
484
:: core:: cmp:: PartialOrd :: partial_cmp( & ( :: core:: clone:: Clone :: clone( self ) as isize ) , & ( :: core:: clone:: Clone :: clone( __other) as isize ) )
452
485
} ;
@@ -550,8 +583,9 @@ fn repr_c_copy() -> Result<()> {
550
583
} ;
551
584
#[ cfg( not( feature = "nightly" ) ) ]
552
585
let partial_ord = quote ! {
553
- #[ repr( C ) ]
554
- enum EnsureReprCIsIsize { Test = 0_isize }
586
+ const __VALIDATE_ISIZE_A: isize = 0 ;
587
+ const __VALIDATE_ISIZE_B: isize = ( 0 ) + 1 ;
588
+ const __VALIDATE_ISIZE_C: isize = ( 0 ) + 2 ;
555
589
556
590
:: core:: cmp:: PartialOrd :: partial_cmp( & ( * self as isize ) , & ( * __other as isize ) )
557
591
} ;
@@ -637,14 +671,15 @@ fn repr_c_reverse() -> Result<()> {
637
671
} ;
638
672
#[ cfg( not( feature = "nightly" ) ) ]
639
673
let partial_ord = quote ! {
640
- #[ repr( C ) ]
641
- enum EnsureReprCIsIsize { Test = 0_isize }
642
-
643
674
const fn __discriminant( __this: & Test ) -> isize {
675
+ const __VALIDATE_ISIZE_A: isize = 2 ;
676
+ const __VALIDATE_ISIZE_B: isize = 1 ;
677
+ const __VALIDATE_ISIZE_C: isize = 0 ;
678
+
644
679
match __this {
645
- Test :: A => 2 ,
646
- Test :: B => 1 ,
647
- Test :: C => 0
680
+ Test :: A => __VALIDATE_ISIZE_A ,
681
+ Test :: B => __VALIDATE_ISIZE_B ,
682
+ Test :: C => __VALIDATE_ISIZE_C
648
683
}
649
684
}
650
685
@@ -688,15 +723,17 @@ fn repr_c_mix() -> Result<()> {
688
723
} ;
689
724
#[ cfg( not( feature = "nightly" ) ) ]
690
725
let partial_ord = quote ! {
691
- #[ repr( C ) ]
692
- enum EnsureReprCIsIsize { Test = 0_isize }
693
-
694
726
const fn __discriminant( __this: & Test ) -> isize {
727
+ const __VALIDATE_ISIZE_A: isize = 1 ;
728
+ const __VALIDATE_ISIZE_B: isize = 0 ;
729
+ const __VALIDATE_ISIZE_C: isize = 2 ;
730
+ const __VALIDATE_ISIZE_D: isize = ( 2 ) + 1 ;
731
+
695
732
match __this {
696
- Test :: A => 1 ,
697
- Test :: B => 0 ,
698
- Test :: C => 2 ,
699
- Test :: D => ( 2 ) + 1
733
+ Test :: A => __VALIDATE_ISIZE_A ,
734
+ Test :: B => __VALIDATE_ISIZE_B ,
735
+ Test :: C => __VALIDATE_ISIZE_C ,
736
+ Test :: D => __VALIDATE_ISIZE_D
700
737
}
701
738
}
702
739
@@ -741,16 +778,19 @@ fn repr_c_skip() -> Result<()> {
741
778
} ;
742
779
#[ cfg( not( feature = "nightly" ) ) ]
743
780
let partial_ord = quote ! {
744
- #[ repr( C ) ]
745
- enum EnsureReprCIsIsize { Test = 0_isize }
746
-
747
781
const fn __discriminant( __this: & Test ) -> isize {
782
+ const __VALIDATE_ISIZE_A: isize = 0 ;
783
+ const __VALIDATE_ISIZE_B: isize = 3 ;
784
+ const __VALIDATE_ISIZE_C: isize = ( 3 ) + 1 ;
785
+ const __VALIDATE_ISIZE_D: isize = ( 3 ) + 2 ;
786
+ const __VALIDATE_ISIZE_E: isize = ( 3 ) + 3 ;
787
+
748
788
match __this {
749
- Test :: A => 0 ,
750
- Test :: B => 3 ,
751
- Test :: C => ( 3 ) + 1 ,
752
- Test :: D => ( 3 ) + 2 ,
753
- Test :: E => ( 3 ) + 3
789
+ Test :: A => __VALIDATE_ISIZE_A ,
790
+ Test :: B => __VALIDATE_ISIZE_B ,
791
+ Test :: C => __VALIDATE_ISIZE_C ,
792
+ Test :: D => __VALIDATE_ISIZE_D ,
793
+ Test :: E => __VALIDATE_ISIZE_E
754
794
}
755
795
}
756
796
@@ -796,14 +836,15 @@ fn repr_c_expr() -> Result<()> {
796
836
} ;
797
837
#[ cfg( not( feature = "nightly" ) ) ]
798
838
let partial_ord = quote ! {
799
- #[ repr( C ) ]
800
- enum EnsureReprCIsIsize { Test = 0_isize }
801
-
802
839
const fn __discriminant( __this: & Test ) -> isize {
840
+ const __VALIDATE_ISIZE_A: isize = isize :: MAX - 2 ;
841
+ const __VALIDATE_ISIZE_B: isize = ( isize :: MAX - 2 ) + 1 ;
842
+ const __VALIDATE_ISIZE_C: isize = ( isize :: MAX - 2 ) + 2 ;
843
+
803
844
match __this {
804
- Test :: A => u64 :: MAX - 2 ,
805
- Test :: B => ( u64 :: MAX - 2 ) + 1 ,
806
- Test :: C => ( u64 :: MAX - 2 ) + 2
845
+ Test :: A => __VALIDATE_ISIZE_A ,
846
+ Test :: B => __VALIDATE_ISIZE_B ,
847
+ Test :: C => __VALIDATE_ISIZE_C
807
848
}
808
849
}
809
850
@@ -815,7 +856,7 @@ fn repr_c_expr() -> Result<()> {
815
856
#[ derive_where( PartialOrd ) ]
816
857
#[ repr( C ) ]
817
858
enum Test {
818
- A = u64 :: MAX - 2 ,
859
+ A = isize :: MAX - 2 ,
819
860
B ,
820
861
#[ derive_where( incomparable) ]
821
862
C ,
0 commit comments