diff options
| author | Ariel Ben-Yehuda <ariel.byd@gmail.com> | 2015-04-14 21:17:14 +0300 |
|---|---|---|
| committer | Ariel Ben-Yehuda <ariel.byd@gmail.com> | 2015-04-15 22:36:06 +0300 |
| commit | 9c1dfed2ba2946bbf9de787de647f5c58e336ae0 (patch) | |
| tree | 051d7e7dc68b5e1fe23df284f475986287ec38e1 /src | |
| parent | 9e1a07883bcf7b5881dec9bd1ff83ffd6da13d02 (diff) | |
| download | rust-9c1dfed2ba2946bbf9de787de647f5c58e336ae0.tar.gz rust-9c1dfed2ba2946bbf9de787de647f5c58e336ae0.zip | |
Use node_ty instead of expr_ty in binary expr fixup
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc_typeck/check/writeback.rs | 4 | ||||
| -rw-r--r-- | src/test/compile-fail/issue-24363.rs | 16 |
2 files changed, 18 insertions, 2 deletions
diff --git a/src/librustc_typeck/check/writeback.rs b/src/librustc_typeck/check/writeback.rs index 5eab90764d4..889975f0eb2 100644 --- a/src/librustc_typeck/check/writeback.rs +++ b/src/librustc_typeck/check/writeback.rs @@ -92,10 +92,10 @@ impl<'cx, 'tcx> WritebackCx<'cx, 'tcx> { // operating on scalars, we clear the overload. fn fix_scalar_binary_expr(&mut self, e: &ast::Expr) { if let ast::ExprBinary(ref op, ref lhs, ref rhs) = e.node { - let lhs_ty = self.fcx.expr_ty(lhs.id); + let lhs_ty = self.fcx.node_ty(lhs.id); let lhs_ty = self.fcx.infcx().resolve_type_vars_if_possible(&lhs_ty); - let rhs_ty = self.fcx.expr_ty(rhs.id); + let rhs_ty = self.fcx.node_ty(rhs.id); let rhs_ty = self.fcx.infcx().resolve_type_vars_if_possible(&rhs_ty); if ty::type_is_scalar(lhs_ty) && ty::type_is_scalar(rhs_ty) { diff --git a/src/test/compile-fail/issue-24363.rs b/src/test/compile-fail/issue-24363.rs new file mode 100644 index 00000000000..590c464371c --- /dev/null +++ b/src/test/compile-fail/issue-24363.rs @@ -0,0 +1,16 @@ +// Copyright 2015 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. + +fn main() { + 1.create_a_type_error[ //~ ERROR attempted access of field + ()+() //~ ERROR binary operation `+` cannot be applied + // ^ ensure that we typeck the inner expression ^ + ]; +} |
