rust/src
bors 9de34a84bb Auto merge of #23673 - nikomatsakis:issue-23319-binops-ng-5, r=pnkfelix
The current binary operator code assumed that if the LHS was a scalar (`i32` etc), then the RHS had to match. This is not true with multidispatch. This PR generalizes the existing code to (primarily) use the traits -- this also allows us to defer the precise type-checking when the types aren't fully known. The one caveat is the unstable SIMD types, which don't fit in with the current traits -- in that case, the LHS type must be known to be SIMD ahead of time.

There is one semi-hacky bit in that during writeback, for builtin operators, if the types resolve to scalars (i32 etc) then we clear the method override. This is because we know what the semantics are and it is more efficient to generate the code directly. It also ensures that we can use these overloaded operators in constants and so forth.

cc @japaric
cc @aturon 

Fixes #23319 (and others).
2015-03-30 14:25:48 +00:00
..
compiler-rt@58ab642c30
compiletest Test fixes and rebase conflicts, round 2 2015-03-27 13:43:42 -07:00
doc Auto merge of #23838 - kgv:master, r=steveklabnik 2015-03-30 04:22:38 +00:00
driver Unquote all crate names without underscores 2015-03-27 10:58:12 -07:00
etc Fix some typos 2015-03-28 18:09:51 +03:00
grammar
jemalloc@e24a1a025a
liballoc Rollup merge of #23803 - richo:unused-braces, r=Manishearth 2015-03-28 18:12:06 +05:30
libarena
libbacktrace
libcollections Rollup merge of #23821 - nicholasbishop:bishop-slice-iter-typo-fix, r=alexcrichton 2015-03-29 18:22:16 +05:30
libcollectionstest Fallout where types must be specified. 2015-03-30 05:02:20 -04:00
libcore Driveby cleanup of the impl for negation, which had some kind of 2015-03-30 04:59:56 -04:00
libcoretest Update debug helpers and add list builder 2015-03-28 10:33:51 -07:00
libflate
libfmt_macros
libgetopts Mass rename uint/int to usize/isize 2015-03-26 12:10:22 -07:00
libgraphviz Mass rename uint/int to usize/isize 2015-03-26 12:10:22 -07:00
liblibc libc: Don't use unstable apis 2015-03-28 10:49:45 -07:00
liblog Mass rename uint/int to usize/isize 2015-03-26 12:10:22 -07:00
librand Fallout where types must be specified. 2015-03-30 05:02:20 -04:00
librbml Fix some typos 2015-03-28 18:09:51 +03:00
librustc Implement new type-checking strategy for binary operators. Basically, 2015-03-30 04:59:56 -04:00
librustc_back Fix some typos 2015-03-28 18:09:51 +03:00
librustc_bitflags
librustc_borrowck Rollup merge of #23803 - richo:unused-braces, r=Manishearth 2015-03-28 18:12:06 +05:30
librustc_driver Rollup merge of #23803 - richo:unused-braces, r=Manishearth 2015-03-28 18:12:06 +05:30
librustc_lint Rollup merge of #23803 - richo:unused-braces, r=Manishearth 2015-03-28 18:12:06 +05:30
librustc_llvm rollup merge of #23741: alexcrichton/remove-int-uint 2015-03-27 10:10:05 -07:00
librustc_privacy Rollup merge of #23803 - richo:unused-braces, r=Manishearth 2015-03-28 18:12:06 +05:30
librustc_resolve Rollup merge of #23803 - richo:unused-braces, r=Manishearth 2015-03-28 18:12:06 +05:30
librustc_trans Implement new type-checking strategy for binary operators. Basically, 2015-03-30 04:59:56 -04:00
librustc_typeck Implement new type-checking strategy for binary operators. Basically, 2015-03-30 04:59:56 -04:00
librustdoc Auto merge of #23837 - wesleywiser:patch-1, r=alexcrichton 2015-03-30 01:31:34 +00:00
libserialize Rollup merge of #23803 - richo:unused-braces, r=Manishearth 2015-03-28 18:12:06 +05:30
libstd Auto merge of #23830 - petrochenkov:spellcheck, r=steveklabnik 2015-03-29 22:39:46 +00:00
libsyntax Implement new type-checking strategy for binary operators. Basically, 2015-03-30 04:59:56 -04:00
libterm Mass rename uint/int to usize/isize 2015-03-26 12:10:22 -07:00
libtest s/THRADS/THREADS/ 2015-03-29 17:22:21 -04:00
libunicode Register new snapshots 2015-03-26 09:57:05 -07:00
llvm@bff6907697
rt
rust-installer@49cc7f6fef Update rust-installer. Fixes --help and interop with NixOS 2015-03-26 16:09:46 -07:00
rustbook
rustllvm
test Add test case for #22743. 2015-03-30 09:05:59 -04:00
snapshots.txt Register new snapshots 2015-03-26 09:57:05 -07:00