Rollup merge of #37110 - TimNN:fix-37109, r=eddyb
normalize tuple pair types in trans Fixes #37109. Note that #37109 is a regression from stable to stable, beta and nightly.
This commit is contained in:
commit
27043b15af
@ -114,7 +114,8 @@ pub fn type_pair_fields<'a, 'tcx>(ccx: &CrateContext<'a, 'tcx>, ty: Ty<'tcx>)
|
||||
if tys.len() != 2 {
|
||||
return None;
|
||||
}
|
||||
Some([tys[0], tys[1]])
|
||||
Some([ccx.tcx().normalize_associated_type(&tys[0]),
|
||||
ccx.tcx().normalize_associated_type(&tys[1])])
|
||||
}
|
||||
_ => None
|
||||
}
|
||||
|
25
src/test/run-pass/issue-37109.rs
Normal file
25
src/test/run-pass/issue-37109.rs
Normal file
@ -0,0 +1,25 @@
|
||||
// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
trait ToRef<'a> {
|
||||
type Ref: 'a;
|
||||
}
|
||||
|
||||
impl<'a, U: 'a> ToRef<'a> for U {
|
||||
type Ref = &'a U;
|
||||
}
|
||||
|
||||
fn example<'a, T>(value: &'a T) -> (<T as ToRef<'a>>::Ref, u32) {
|
||||
(value, 0)
|
||||
}
|
||||
|
||||
fn main() {
|
||||
example(&0);
|
||||
}
|
Loading…
Reference in New Issue
Block a user