about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorAriel Ben-Yehuda <ariel.byd@gmail.com>2015-04-14 21:17:14 +0300
committerAriel Ben-Yehuda <ariel.byd@gmail.com>2015-04-15 22:36:06 +0300
commit9c1dfed2ba2946bbf9de787de647f5c58e336ae0 (patch)
tree051d7e7dc68b5e1fe23df284f475986287ec38e1 /src
parent9e1a07883bcf7b5881dec9bd1ff83ffd6da13d02 (diff)
downloadrust-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.rs4
-rw-r--r--src/test/compile-fail/issue-24363.rs16
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 ^
+    ];
+}