File tree 2 files changed +33
-1
lines changed
2 files changed +33
-1
lines changed Original file line number Diff line number Diff line change @@ -698,7 +698,8 @@ impl LateLintPass for VariantSizeDifferences {
698
698
if gens. ty_params . is_empty ( ) { // sizes only make sense for non-generic types
699
699
let t = cx. tcx . node_id_to_type ( it. id ) ;
700
700
let layout = cx. tcx . normalizing_infer_ctxt ( ProjectionMode :: Any ) . enter ( |infcx| {
701
- t. layout ( & infcx) . unwrap_or_else ( |e| {
701
+ let ty = cx. tcx . erase_regions ( & t) ;
702
+ ty. layout ( & infcx) . unwrap_or_else ( |e| {
702
703
bug ! ( "failed to get layout for `{}`: {}" , t, e)
703
704
} )
704
705
} ) ;
Original file line number Diff line number Diff line change
1
+ // Copyright 2016 The Rust Project Developers. See the COPYRIGHT
2
+ // file at the top-level directory of this distribution and at
3
+ // http://rust-lang.org/COPYRIGHT.
4
+ //
5
+ // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6
+ // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7
+ // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8
+ // option. This file may not be copied, modified, or distributed
9
+ // except according to those terms.
10
+
11
+ #![ feature( rustc_attrs) ]
12
+ #![ allow( dead_code) ]
13
+
14
+ trait RegularExpression : Sized {
15
+ type Text ;
16
+ }
17
+
18
+ struct ExecNoSyncStr < ' a > ( & ' a u8 ) ;
19
+
20
+ impl < ' c > RegularExpression for ExecNoSyncStr < ' c > {
21
+ type Text = u8 ;
22
+ }
23
+
24
+ struct FindCaptures < ' t , R > ( & ' t R :: Text ) where R : RegularExpression , R :: Text : ' t ;
25
+
26
+ enum FindCapturesInner < ' r , ' t > {
27
+ Dynamic ( FindCaptures < ' t , ExecNoSyncStr < ' r > > ) ,
28
+ }
29
+
30
+ #[ rustc_error]
31
+ fn main ( ) { } //~ ERROR compilation successful
You can’t perform that action at this time.
0 commit comments