Daniel Micay
38f39ac540
expose find_mut in the Map trait
2013-03-24 21:40:16 -04:00
Daniel Micay
f0f4a00e88
smallintmap: add find_mut method
2013-03-24 21:40:13 -04:00
Patrick Walton
c1084091d4
libstd: Remove all uses of pure from libstd. rs=depure
2013-03-22 10:29:17 -07:00
Patrick Walton
4634f7edae
librustc: Remove all uses of static from functions. rs=destatic
2013-03-22 10:27:39 -07:00
Patrick Walton
e78f2e2ac5
librustc: Make the compiler ignore purity.
...
For bootstrapping purposes, this commit does not remove all uses of
the keyword "pure" -- doing so would cause the compiler to no longer
bootstrap due to some syntax extensions ("deriving" in particular).
Instead, it makes the compiler ignore "pure". Post-snapshot, we can
remove "pure" from the language.
There are quite a few (~100) borrow check errors that were essentially
all the result of mutable fields or partial borrows of `@mut`. Per
discussions with Niko I think we want to allow partial borrows of
`@mut` but detect obvious footguns. We should also improve the error
message when `@mut` is erroneously reborrowed.
2013-03-18 17:21:16 -07:00
Patrick Walton
352c070365
librustc: Convert all uses of old lifetime notation to new lifetime notation. rs=delifetiming
2013-03-18 17:21:14 -07:00
Daniel Micay
becad9bb07
add the mutate_values method to the Map trait
2013-03-13 19:33:10 -04:00
Patrick Walton
d18f785457
librustc: Replace all uses of fn() with &fn(). rs=defun
2013-03-11 09:35:58 -07:00
Patrick Walton
d7e74b5e91
librustc: Convert all uses of assert over to fail_unless!
2013-03-07 22:37:57 -08:00
Niko Matsakis
3168fe06ff
Add manual &self/ and &static/ and /&self declarations that
...
are currently inferred. New rules are coming that will require
them to be explicit. All add some explicit self declarations.
2013-03-06 15:12:57 -05:00
Patrick Walton
bf2a225c0b
librustc: Separate most trait bounds with '+'. rs=plussing
2013-02-20 21:14:20 -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
Niko Matsakis
ab2534974c
Adjust borrow checker algorithm to address #4856 unsoundness,
...
and then adjust code to match. rs=unsound (will review post-landing)
2013-02-12 20:10:50 -08:00
Daniel Micay
fe841f3e56
implement ReverseIter for SmallIntMap
2013-02-07 22:04:38 -05:00
Daniel Micay
66d5030763
implement BaseIter for SmallIntMap
2013-02-07 22:04:38 -05:00
Daniel Micay
83270d2d79
rm each method from the Map trait
...
the map types should implement BaseIter instead
2013-02-07 22:04:35 -05: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
Daniel Micay
dab2f2fac0
remove old snapshot workaround from smallintmap
2013-02-06 17:37:56 -05:00
Daniel Micay
74b317ddc2
modernize smallintmap
...
* switch to explicit self
* get rid of the @ box
* replace DVec with ~[] (to get rid of the mutable field)
* implement the new container::Map trait
2013-01-31 23:22:51 -05:00
Daniel Micay
348d770fed
copy oldsmallintmap.rs to smallintmap.rs
2013-01-31 23:13:56 -05:00
Daniel Micay
70855f5a07
move smallintmap to oldsmallintmap
2013-01-31 23:13:56 -05:00
Daniel Micay
9ba7114515
implement container::Mutable for SmallIntMap
2013-01-31 23:13:56 -05:00
Daniel Micay
aac91267e3
clean up SmallIntMap tests a bit
2013-01-31 23:13:56 -05:00
Daniel Micay
1057eea7ac
drop the StdMap implementation from SmallIntMap
2013-01-31 23:13:55 -05:00
Daniel Micay
274e75cd82
implement container::Container for SmallIntMap
2013-01-31 23:13:55 -05:00
Nick Desaulniers
aee7929469
Replace most invocations of fail keyword with die! macro
2013-01-31 20:12:49 -08:00
Patrick Walton
eb4d39e1fe
libstd: Remove "dual impls" from the language and enforce coherence rules. r=brson
...
"Dual impls" are impls that are both type implementations and trait
implementations. They can lead to ambiguity and so this patch removes them
from the language.
This also enforces coherence rules. Without this patch, records can implement
traits not defined in the current crate. This patch fixes this, and updates
all of rustc to adhere to the new enforcement. Most of this patch is fixing
rustc to obey the coherence rules, which involves converting a bunch of records
to structs.
2013-01-29 10:42:45 -08:00
Niko Matsakis
08bc19cbcd
Remove bounds from type decl of smallintmap
...
r=brson
2013-01-28 10:01:55 -08:00
Erick Tryzelaar
e84576b888
convert most of libstd over to structs
2013-01-24 16:24:31 -08:00
Patrick Walton
2db3abddcd
librustc: Make unqualified identifier searches terminate at the nearest module scope. r=tjc
2013-01-08 22:02:35 -08:00
Patrick Walton
44ab00ee37
Revert "librustc: Make unqualified identifier searches terminate at the nearest module scope. r=tjc"
...
This reverts commit a8d37af247 .
2013-01-08 19:29:16 -08:00
Patrick Walton
a8d37af247
librustc: Make unqualified identifier searches terminate at the nearest module scope. r=tjc
2013-01-08 19:27:57 -08:00
Patrick Walton
fa5ee934ed
libstd: Fix a bunch of resolve errors in tests. rs=fire
2012-12-27 18:24:18 -08: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
Brian Anderson
9723d3ac2f
Remove transitional code
2012-12-09 17:59:21 -08:00
Patrick Walton
d1ebdbeb6c
librustc: Implement explicit self for Add and Index; add a hack in the borrow checker to support this. r=nmatsakis
2012-12-04 14:51:31 -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
3ed9fbd63c
impls of traits cannot define methods on the anonymous trait
2012-11-29 22:07:49 -08:00
Brian Anderson
5c0206a1e4
Rename insert_with functions to update, update_with_key
2012-11-25 13:26:37 -08:00
Kevin Cantu
ff4075e553
Add improvements to insert_with_key
...
This commit adds a lower-level implementation of the generic
`insert_with_key` which I expect to be faster. Now insert could be
defined with insert_with_key, too, although I'm not sure we want to do that.
This also clarifies the tests a bit and adds an `insert_with` function.
2012-11-25 12:41:11 -08:00
Kevin Cantu
a343e435d5
Add an insert_with_key function to the Map trait
2012-11-25 12:41:11 -08:00
Jesse Jones
68c852ad3a
Made Map.contains_key, contains_key_ref, and get pure.
2012-11-18 13:25:24 -08:00
Tim Chevalier
8fc60af441
Remove by-copy mode from std, mostly
...
One instance remains in net_tcp due to a foreign fn. Lots of
instances remain in serialization.rs, but IIRC that is being removed.
I had to do unholy things to task-perf-word-count-generic to get it
to compile after demoding pipes. I may well have messed up its
performance, but it passes.
2012-10-04 19:59:47 -07:00
Tim Chevalier
f33539e446
Remove uses of + mode from libstd
...
More or less the same as my analogous commit for libcore. Had
to remove the forbid(deprecated_modes) pragma from some files -- will
restore it after the snapshot.
2012-10-03 14:05:51 -07:00
Graydon Hoare
8cc61c816a
De-export std::{rope,smallintmap}. Part of #3583 .
2012-10-01 14:09:09 -07:00
Niko Matsakis
21519bc7e0
demode vec
2012-09-28 13:27:45 -07:00
Brian Anderson
bc9efaad9c
std: Eliminate deprecated patterns
2012-09-28 00:22:28 -07:00
Tim Chevalier
3023bd8729
Demode dvec
2012-09-25 18:27:55 -07:00
Brian Anderson
4a78f9b166
core: Demode option
2012-09-23 17:15:00 -07:00
Niko Matsakis
cfed923600
demode the each() method on vec and other iterables.
2012-09-19 17:03:01 -07:00