From c21b3ff81847e9c9bcce83f961dffa385fa059ae Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Fri, 7 Sep 2012 12:44:53 -0700 Subject: [PATCH] rustc: Make "ne" use traits --- src/libsyntax/ast_util.rs | 3 ++- src/rustc/middle/resolve.rs | 2 +- src/rustc/middle/typeck/check.rs | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/libsyntax/ast_util.rs b/src/libsyntax/ast_util.rs index 6f594cd6d70d..1ff4728f4726 100644 --- a/src/libsyntax/ast_util.rs +++ b/src/libsyntax/ast_util.rs @@ -110,7 +110,8 @@ pure fn binop_to_method_name(op: binop) -> Option<~str> { ge => return Some(~"ge"), gt => return Some(~"gt"), eq => return Some(~"eq"), - and | or | ne => return None + ne => return Some(~"ne"), + and | or => return None } } diff --git a/src/rustc/middle/resolve.rs b/src/rustc/middle/resolve.rs index 4bea8e7c508f..dfc5e84b701d 100644 --- a/src/rustc/middle/resolve.rs +++ b/src/rustc/middle/resolve.rs @@ -4530,7 +4530,7 @@ struct Resolver { self.add_fixed_trait_for_expr(expr.id, self.lang_items.ord_trait); } - expr_binary(eq, _, _) => { + expr_binary(eq, _, _) | expr_binary(ne, _, _) => { self.add_fixed_trait_for_expr(expr.id, self.lang_items.eq_trait); } diff --git a/src/rustc/middle/typeck/check.rs b/src/rustc/middle/typeck/check.rs index 4ec13684f7e1..177fa2972377 100644 --- a/src/rustc/middle/typeck/check.rs +++ b/src/rustc/middle/typeck/check.rs @@ -1108,7 +1108,7 @@ fn check_expr_with_unifier(fcx: @fn_ctxt, // Hack: Unify the two sides if this is a relational operator. match op { - ast::eq | ast::lt | ast::le | ast::ne | ast::ge | ast::gt => { + ast::eq | ast::ne | ast::lt | ast::le | ast::ge | ast::gt => { check_expr_with(fcx, rhs, lhs_t); } _ => {}