diff options
| author | Eduard-Mihai Burtescu <edy.burt@gmail.com> | 2017-04-16 06:25:18 +0300 |
|---|---|---|
| committer | Eduard-Mihai Burtescu <edy.burt@gmail.com> | 2017-04-16 06:25:18 +0300 |
| commit | cd64ff943889b1cda1029a4a0d906d934a47abeb (patch) | |
| tree | 235c5f48f76597c9f3f575081d06fda78ee2696e | |
| parent | 3725cab5ac1cb6a32b59b7731ce1d6e114c0ae00 (diff) | |
| download | rust-cd64ff943889b1cda1029a4a0d906d934a47abeb.tar.gz rust-cd64ff943889b1cda1029a4a0d906d934a47abeb.zip | |
rustc_typeck: fix binops needing more type informations to coerce.
| -rw-r--r-- | src/librustc_typeck/check/op.rs | 2 | ||||
| -rw-r--r-- | src/test/run-pass/coerce-overloaded-autoderef.rs | 4 |
2 files changed, 6 insertions, 0 deletions
diff --git a/src/librustc_typeck/check/op.rs b/src/librustc_typeck/check/op.rs index 5b174aaf895..42296006b79 100644 --- a/src/librustc_typeck/check/op.rs +++ b/src/librustc_typeck/check/op.rs @@ -411,6 +411,8 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> { match method { Some(ok) => { let method = self.register_infer_ok_obligations(ok); + self.select_obligations_where_possible(); + let method_ty = method.ty; // HACK(eddyb) Fully qualified path to work around a resolve bug. diff --git a/src/test/run-pass/coerce-overloaded-autoderef.rs b/src/test/run-pass/coerce-overloaded-autoderef.rs index a053311a040..091e29dd18a 100644 --- a/src/test/run-pass/coerce-overloaded-autoderef.rs +++ b/src/test/run-pass/coerce-overloaded-autoderef.rs @@ -68,4 +68,8 @@ fn use_vec_ref(v: &Vec<u8>) { use_slice(&&&mut &&&v); } +fn use_op_rhs(s: &mut String) { + *s += {&String::from(" ")}; +} + pub fn main() {} |
