Patrick Walton
a1531ed946
librustc: Remove the broken overloaded assign-ops from the language.
...
They evaluated the receiver twice. They should be added back with
`AddAssign`, `SubAssign`, etc., traits.
2013-06-28 10:44:16 -04:00
Patrick Walton
206ab89629
librustc: Stop reexporting the standard modules from prelude.
2013-05-29 19:04:53 -07:00
Corey Richardson
cc57ca012a
Use assert_eq! rather than assert! where possible
2013-05-19 08:16:02 -04:00
Patrick Walton
9d011ebf67
test: Fix tests.
2013-05-08 17:04:02 -07:00
Patrick Walton
1e91595520
librustc: Remove fail_unless!
2013-03-29 16:39:08 -07:00
Niko Matsakis
069529bc5c
Autoref the argument to the index operator ( #4920 )
2013-03-27 13:04:03 -04:00
Patrick Walton
3eda11a4f7
test: Remove pure
from the test suite
2013-03-22 12:57:28 -07:00
Patrick Walton
d7e74b5e91
librustc: Convert all uses of assert
over to fail_unless!
2013-03-07 22:37:57 -08:00
Patrick Walton
30bb09c0e7
test: Remove fn@
, fn~
, and fn&
from the test suite. rs=defun
2013-03-02 18:47:47 -08:00
Brian Anderson
ddd9fb6c1e
Remove legacy_modes from test cases
2013-02-22 14:53:44 -08:00
Patrick Walton
9143688197
librustc: Replace impl Type : Trait
with impl Trait for Type
. rs=implflipping
2013-02-14 14:44:12 -08:00
Graydon Hoare
89c8ef792f
check-fast fallout from removing export, r=burningtree
2013-02-01 19:43:17 -08:00
Andrew Paseltiner
ea937dca89
test: add test for overloading logical negation operator
2013-01-11 16:27:12 -05:00
Graydon Hoare
d1affff623
Reliciense makefiles and testsuite. Yup.
2012-12-10 17:32:58 -08:00
Patrick Walton
e1685dd990
test: More bustage fixes. rs=me
2012-12-05 17:36:51 -08:00
Patrick Walton
6084032270
test: More run-pass test fixes
2012-12-05 16:51:32 -08:00
Patrick Walton
7bc29c62d0
libcore: Add explicit self to all overloaded operators but Add and Index. r=brson
2012-11-26 19:35:52 -08:00
Patrick Walton
318e534895
rustc: Implement explicit self for Eq and Ord. r=graydon
2012-11-19 15:33:11 -08:00
Tim Chevalier
3023bd8729
Demode dvec
2012-09-25 18:27:55 -07:00
Patrick Walton
9117dcb968
rustc: De-mode all overloaded operators
2012-09-20 09:48:05 -07:00
Brian Anderson
35a9353774
xfail-fast the legacy_mode run-pass tests
2012-09-19 13:59:58 -07:00
Patrick Walton
e653d493fb
rustc: Remove legacy mode inference, unless #[legacy_modes] is used
2012-09-18 15:53:04 -07:00
Brian Anderson
f0eae8f1c1
Convert field terminators to commas. Stop parsing semis.
2012-09-07 16:12:15 -07:00
Patrick Walton
feb014eb3c
rustc: Add an "ne" method to the Eq trait, and implement it everywhere
2012-09-07 12:24:48 -07:00
Brian Anderson
f393100b7c
Camel case core::ops
2012-09-02 18:13:56 -07:00
Patrick Walton
96534365c2
rustc: Make <
and =
into traits
2012-08-29 18:25:22 -07:00
Patrick Walton
93c2f5e0e4
rustc: Use coherence for operator overloading.
...
The only use of the old-style impls is now placement new.
2012-07-27 19:35:24 -07:00
Patrick Walton
db020ab63c
rustc: Implement and enforce instance coherence
2012-07-17 15:46:43 -07:00
Niko Matsakis
dc07280b08
make --enforce-mut-vars always on, add mut annotations to remaining files
2012-03-22 09:58:19 -07:00
Marijn Haverbeke
6a7de641da
Add test case for issue #1733
2012-02-02 10:30:07 +01:00
Paul Woolcock
e1f15a71e3
Alter/remove tests that include/concern ternary
...
3 tests, pretty/block-disambig.rs, run-pass/operator-overloading.rs,
and run-pass/weird-exprs.rs, all included the ternary operator. These
were changed to use the if-then-else construct instead.
2 tests, run-pass/block-arg-in-ternary.rs and run-pass/ternary.rs, were
only there because of the ternary operator, and were removed.
2012-01-30 18:20:05 +01:00
Marijn Haverbeke
b80f0a3c9f
Use the method name 'unary-' for overloading negation
...
It's less likely to clash with something than 'neg'.
Issue #1520
2012-01-27 10:06:53 +01:00
Marijn Haverbeke
6bead0e4cc
Use operator names for operator methods
...
The methods used to implement operators now simply use
the name of the operator itself, except for unary -, which is called
min to not clash with binary -. Index is called [].
Closes #1520
2012-01-26 15:52:28 +01:00
Marijn Haverbeke
888262b337
Allow operator overloading of the indexing operator
...
The method `op_index` (which takes a single argument) is used for
this.
Issue #1520
2012-01-26 15:23:11 +01:00
Marijn Haverbeke
87b064b249
First stab at operator overloading
...
When no built-in interpretation is found for one of the operators
mentioned below, the typechecker will try to turn it into a method
call with the name written next to it. For binary operators, the
method will be called on the LHS with the RHS as only parameter.
Binary:
+ op_add
- op_sub
* op_mul
/ op_div
% op_rem
& op_and
| op_or
^ op_xor
<< op_shift_left
>> op_shift_right
>>> op_ashift_right
Unary:
- op_neg
! op_not
Overloading of the indexing ([]) operator isn't finished yet.
Issue #1520
2012-01-26 14:25:06 +01:00