summary refs log tree commit diff
path: root/src/libstd
AgeCommit message (Collapse)AuthorLines
2013-03-02treemap: reimplement using TotalOrdDaniel Micay-81/+86
2013-03-02auto merge of #5137 : yjh0502/rust/empty_struct, r=nikomatsakisbors-4/+4
The fix is straight-forward, but there are several changes while fixing the issue. 1) disallow `mut` keyword when making a new struct In code base, there are following code, ```rust struct Foo { mut a: int }; let a = Foo { mut a: 1 }; ``` This is because of structural record, which is deprecated corrently (see issue #3089) In structural record, `mut` keyword should be allowd to control mutability. But without structural record, we don't need to allow `mut` keyword while constructing struct. 2) disallow structural records in parser level This is related to 1). With structural records, there is an ambiguity between empty block and empty struct To solve the problem, I change parser to stop parsing structural records. I think this is not a problem, because structural records are not compiled already. Misc. issues There is an ambiguity between empty struct vs. empty match stmt. with following code, ```rust match x{} {} ``` Two interpretation is possible, which is listed blow ```rust match (x{}) {} // matching with newly-constructed empty struct (match x{}) {} // matching with empty enum(or struct) x // and then empty block ``` It seems that there is no such code in rust code base, but there is one test which uses empty match statement: https://github.com/mozilla/rust/blob/incoming/src/test/run-pass/issue-3037.rs All other cases could be distinguished with look-ahead, but this can't be. One possible solution is wrapping with parentheses when matching with an uninhabited type. ```rust enum what { } fn match_with_empty(x: what) -> ~str { match (x) { //use parentheses to remove the ambiguity } } ```
2013-03-01auto merge of #5185 : ben0x539/rust/net-tcp-docs, r=brsonbors-76/+76
This changes various type_names to TypeNames and fixes the example for `tcp::accept` that was still using the old `match` syntax and `{|args| ...}` closures. The `accept` example was fairly outdated. I was just going to stay away from all the IO things until the scheduler revamp lands, but `accept` is probably one of the obvious starting points for networking stuff for a learner, and I don't want to get in the way of anyone's enthusiasm. Doesn't touch non-comment lines, so I hope I will get away without learning about unit tests. It doesn't seem like the test system is set up to extract tests from doc comments right now.
2013-03-02Remove REC, change related tests/docsJihyun Yu-4/+4
2013-03-01Rename core::private to core::unstable. #4743Brian Anderson-6/+6
2013-03-01`std::net::tcp` docs: Use current syntax and typesBenjamin Herr-76/+76
Doesn't touch non-comment lines. This changes various type_names to TypeNames and fixes the example for `tcp::accept` that was still using the old `match` syntax and `{|args| ...}` closures.
2013-03-01librustc: "APL2" -> "ASL2". rs=license-fixPatrick Walton-1/+1
2013-03-01Merge remote branch 'sevrak/issue-5164' into incomingPatrick Walton-2/+2
2013-02-28auto merge of #5180 : catamorphism/rust/post-snapshot, r=catamorphismbors-24/+0
* Disallow structural records everywhere * Remove all #[cfg(stage0)] stuff * Remove the last deprecated modes in libcore * Un-xfail a test
2013-02-28auto merge of #5147 : nikomatsakis/rust/remove-legacy-trait-table, ↵bors-2/+2
r=nikomatsakis r? @pcwalton
2013-02-28Remove code that was awaiting a snapshotTim Chevalier-24/+0
* Disallow structural records everywhere * Remove all #[cfg(stage0)] stuff * Remove the last deprecated modes in libcore * Un-xfail a test
2013-02-28Remove legacy object creation mode, and convert remaining uses of itNiko Matsakis-2/+2
2013-02-28auto merge of #5176 : brson/rust/unwrap_shared_mutable_state, r=nikomatsakisbors-65/+1
r? This fixes the current [random failures](http://buildbot.rust-lang.org/builders/auto-linux/builds/291/steps/test/logs/stdio) on the bots and closes #4436 by removing `unwrap_shared_mutable_state` and the code that depends on it. The result is that ARC-like things will not be unwrappable. This feature is complex and is not used outside of test cases. Note that there is not consensus to remove it. (second commit)
2013-02-28core: Remove unwrap_shared_mutable_state. #4436Brian Anderson-65/+1
2013-02-28Fix implicit leaks of imports throughout librariesAlex Crichton-208/+221
Also touch up use of 'pub' and move some tests around so the tested functions don't have to be 'pub'
2013-02-28librustc: Enforce cross-crate method privacyPatrick Walton-0/+2
2013-02-28librustc: Mark all type implementations public. rs=impl-publicityPatrick Walton-44/+44
2013-02-28Fix license attribute on cratessevrak-2/+2
2013-02-27auto merge of #5155 : bstrie/rust/dedrop, r=pcwaltonbors-1/+4
This removes all but 6 uses of `drop {}` from the entire codebase. Removing any of the remaining uses causes various non-trivial bugs; I'll start reporting them once this gets merged.
2013-02-27Turn old `drop` blocks into `Drop` traitsBen Striegel-1/+4
2013-02-27auto merge of #5140 : yjh0502/rust/issue_4458, r=catamorphismbors-1/+21
Fix is a bug fix for issue #4458. This patch is quite straight-forward. A test for result_str() is added.
2013-02-27librustc: Forbid `pub` or `priv` before trait implementationsPatrick Walton-75/+73
2013-02-27libsyntax: Forbid mutable vectors. rs=demutingPatrick Walton-6/+4
2013-02-27libsyntax: Forbid `~mut` and `~const`. rs=demutingPatrick Walton-16/+18
2013-02-27Fix: now sha1 result_str() return correct valueJihyun Yu-1/+21
2013-02-27auto merge of #5123 : thestinger/rust/treemap, r=nikomatsakisbors-113/+93
* replace the dual next() and get() calls with a single next() function * drop one of the pointer members from the struct * add a method for using the lazy iterator with a for loop
2013-02-27treemap: improve the lazy iteratorDaniel Micay-113/+93
* replace the dual next() and get() calls with a single next() function * drop one of the pointer members from the struct * add a method for using the lazy iterator with a for loop
2013-02-26auto merge of #5119 : Kimundi/rust/incoming, r=catamorphismbors-10/+10
Removed deprecated `str()` functions in int-template.rs and uint-template.rs
2013-02-26Removed deprecated `str()` functions in int-template.rs and uint-template.rsMarvin Löbel-10/+10
2013-02-26libcore: Move Cell to core and de-~mut core and stdPatrick Walton-91/+0
2013-02-26librustc: Implement a lint mode for mutable structures; deny by default. r=tjcPatrick Walton-0/+1
2013-02-23remove oldsmallintmapDaniel Micay-238/+0
Closes #4738
2013-02-22auto merge of #5081 : brson/rust/pipes, r=pcwaltonbors-75/+77
r?
2013-02-21core: Extract comm from pipes. #4742Brian Anderson-75/+77
2013-02-21Cleanup, commenting, trivial renamingJohn Clements-2/+0
2013-02-21librustc: Separate the rest of the trait bounds with `+` and stop parsing ↵Patrick Walton-25/+13
space-separated ones. rs=plussing
2013-02-20librustc: Separate most trait bounds with '+'. rs=plussingPatrick Walton-210/+212
2013-02-19std: update rand-using tests, r=burningtreeGraydon Hoare-3/+3
2013-02-18auto merge of #5005 : alexcrichton/rust/bitv++, r=catamorphismbors-187/+701
These commits take the old bitv implementation and modernize it with an explicit self, some minor touchups, and using what I think is some more recent patterns (like `::new` instead of `Type()`). Additionally, this adds an implementation of `container::Set` on top of a bit vector to have as a set of `uint`s. I initially tried to parameterize the type for the set to be `T: NumCast` but I was hitting build problems in stage0 which I think means that it's not in a snapshot yet, so it's just hardcoded as a set of `uint`s now. In the future perhaps it could be parameterized. I'm not sure if it would really add anything, though, so maybe it's nicer to be hardcoded anyway. I also added some extra methods to do normal bit vector operations on the set in-place, but these aren't a part of the `Set` trait right now. I haven't benchmarked any of these operations just yet, but I imagine that there's quite a lot of room for optimization here and there.
2013-02-18Add benchmarks to measure differences in bit vectorsAlex Crichton-0/+92
2013-02-17Implement Set container on top of a bit vectorAlex Crichton-40/+470
2013-02-17Favor local closures instead of global functionsAlex Crichton-8/+4
2013-02-17Remove the 'uint_bits' constant in bitvAlex Crichton-11/+9
2013-02-17Change SmallBitv to use uint instead of u32Alex Crichton-8/+8
2013-02-17Modernize bitv mut fields and explicit selfAlex Crichton-134/+132
2013-02-17vec: grow_fn doesn't require CopyDaniel Micay-1/+1
2013-02-16auto merge of #4993 : thestinger/rust/deque, r=graydonbors-158/+138
Closes #3748 and #2343.
2013-02-17Removed more capture claueses.Seth Pink-3/+3
2013-02-16deque: get rid of Copy requirementDaniel Micay-2/+0
Closes #3748
2013-02-16deque: avoid Copy in growDaniel Micay-8/+5