Huon Wilson
8407ec9fed
syntax: make #[deriving(TotalOrd)] lazy.
...
Previously it would call:
f(sf1.cmp(&of1), f(sf2.cmp(&of2), ...))
(where s/of1 = 'self/other field 1', and f was
std::cmp::lexical_ordering)
This meant that every .cmp subcall got evaluated when calling a derived
TotalOrd.cmp.
This corrects this to use
let test = sf1.cmp(&of1);
if test == Equal {
let test = sf2.cmp(&of2);
if test == Equal {
// ...
} else {
test
}
} else {
test
}
This gives a lexical ordering by short-circuiting on the first comparison
that is not Equal.
2013-08-04 19:46:52 +10:00
Daniel Micay
1008945528
remove obsolete foreach
keyword
...
this has been replaced by `for`
2013-08-03 22:48:02 -04:00
Daniel Micay
b41d04763e
make for
parse as foreach
does
...
Closes #6997
2013-08-03 03:00:42 -04:00
bors
0012b5008b
auto merge of #8030 : thestinger/rust/iterator, r=huonw
2013-07-25 13:49:43 -07:00
Daniel Micay
4517e39125
rm default method lint
...
default methods are enabled by default, so there's not much point in
keeping around a lint to report them as being experimental
2013-07-24 18:44:16 -04:00
Michael Sullivan
a0f8540c95
Fix some impls such that all supertraits are actually implemented.
2013-07-23 17:06:32 -07:00
blake2-ppc
6999b5332f
cmp: Use default methods in trait Eq, require only Eq::eq
2013-07-15 13:24:35 +02:00
blake2-ppc
36f20423c3
cmp: Use default methods in trait Ord, only require Ord::lt
...
It will be simpler to implement only one method for Ord, while we also
allow implementing all four Ord methods for semantics or performance
reasons.
We only supply three default methods (and not four), because don't have
any nice error reporting for the case where at least one method must be
implemented, but it's arbitrary which.
2013-07-13 06:23:38 +02:00
Graydon Hoare
d904c72af8
replace #[inline(always)] with #[inline]. r=burningtree.
2013-06-18 14:48:48 -07:00
Daniel Micay
86833ea286
cmp: remove duplicate free functions
2013-06-09 20:47:40 -04:00
Alex Crichton
007651cd26
Require documentation by default for libstd
...
Adds documentation for various things that I understand.
Adds #[allow(missing_doc)] for lots of things that I don't understand.
2013-05-30 01:02:55 -05:00
Patrick Walton
0c820d4123
libstd: Rename libcore to libstd and libstd to libextra; update makefiles.
...
This only changes the directory names; it does not change the "real"
metadata names.
2013-05-22 21:57:05 -07:00
Brendan Zabarauskas
0211833008
Move FuzzyEq trait into core::cmp and rename it to 'ApproxEq'
2013-05-06 21:51:07 +10:00
Felix S. Klock II
880e300ed7
mod items need to be marked with cfg(test)
not test
.
2013-05-02 08:55:08 +02:00
Patrick Walton
1e91595520
librustc: Remove fail_unless!
2013-03-29 16:39:08 -07:00
Patrick Walton
85c9fc6f8f
librustc: Remove the const
declaration form everywhere
2013-03-22 22:24:35 -07:00
Patrick Walton
c1084091d4
libstd: Remove all uses of pure
from libstd. rs=depure
2013-03-22 10:29:17 -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
9143688197
librustc: Replace impl Type : Trait
with impl Trait for Type
. rs=implflipping
2013-02-14 14:44:12 -08:00
bors
37a610a7d9
auto merge of #4831 : bjz/rust/incoming, r=pcwalton
...
This is useful for comparing more complex types that include floats.
2013-02-07 08:32:09 -08:00
Niko Matsakis
a32498d846
Make ~fn non-copyable, make &fn copyable, split barefn/closure types,
...
correct handling of moves for struct-record update.
Part of #3678 . Fixes #2828 , #3904 , #4719 .
2013-02-07 05:53:30 -08:00
Brendan Zabarauskas
e4c7d8ec87
Add type parameter for epsilon value
2013-02-07 22:54:52 +11:00
Brendan Zabarauskas
b081f59495
Convert fuzzy_epsilon constant to upper case and make public
2013-02-07 10:25:41 +11:00
Patrick Walton
366812a5c3
librustc: Change self
as a type to Self
everywhere. r=brson
2013-01-30 19:52:45 -08:00
Graydon Hoare
4030aaff20
rustc: make integral type inference transactional, close #3211 , close #4401 , close #3398 .
2013-01-30 16:21:19 -08:00
Tim Chevalier
a80a65b3b7
Merge pull request #4676 from thestinger/fuzzy
...
fix FuzzyEq
2013-01-29 13:58:39 -08:00
Daniel Micay
1aa9fdff56
fix FuzzyEq
2013-01-29 16:54:55 -05:00
Tim Chevalier
66b07f1e5d
Fix licenseck to allow 2012-2013 as the year range
2013-01-29 13:48:40 -08:00
Daniel Micay
e0728d41f2
implement fuzzy_eq with fuzzy_eq_eps
2013-01-29 15:35:26 -05:00
Daniel Micay
fce6446e7e
add a FuzzyEq method that accepts an epsilon value
2013-01-28 21:25:58 -05:00
Daniel Micay
abb79cb52d
update FuzzyEq to explicit self
2013-01-28 19:28:40 -05:00
Daniel Micay
52975202af
fix std::cmp docstring
2013-01-28 19:28:23 -05:00
Patrick Walton
57c599914a
librustc: Terminate name searches at the nearest module scope for paths that contain at least two components. r=graydon
2012-12-27 10:02:54 -08:00
Graydon Hoare
00c856c0b1
Update license, add license boilerplate to most files. Remainder will follow.
2012-12-03 17:12:14 -08:00
Brian Anderson
bc9efaad9c
std: Eliminate deprecated patterns
2012-09-28 00:22:28 -07:00
Graydon Hoare
1845cf23aa
De-export std::{base64,cmp,par}. Part of #3583 .
2012-09-27 16:43:25 -07:00
Brian Anderson
1397c83f11
std: warn(non_camel_case_types) everywhere. still some exceptions
2012-09-02 15:49:36 -07:00
Kevin Cantu
2580040995
Remove deprecated modes from FuzzyEq in cmp.rs
...
This commit may require changes to the following Servo files:
* rust-geom/matrix.rs
* servo/platform/osmain.rs
* rust-layers/layers.rs
* rust-geom/matrix.rs
2012-08-31 12:55:39 -07:00
Ben Striegel
a605fd0cad
CamelCasify lots of std
2012-08-28 18:52:44 -07:00
Brian Anderson
6a0720b439
Convert impls to new syntax
2012-08-08 18:19:24 -07:00
Brian Anderson
b355936b4d
Convert ret to return
2012-08-01 19:16:06 -07:00
Patrick Walton
1dd8acd56a
core: Mark a bunch of numeric functions as pure
2012-07-26 14:43:44 -07:00
Gareth Daniel Smith
be0141666d
convert doc-attributes to doc-comments using ./src/etc/sugarise-doc-comments.py (and manually tweaking) - for issue #2498
2012-07-04 19:18:13 -07:00
Patrick Walton
d8b113f209
std: Implement a fuzzy-equal interface
2012-06-07 18:12:50 -07:00