Niko Matsakis
6d764cc361
Make object types not implement associated trait. Fixes #5087 .
2013-03-06 11:02:19 -05:00
Niko Matsakis
6267339d68
Fix bug in coherence that causes all cross-crate impls to be regarded as
...
inherent impls, not just those of the `impl Type` variety.
2013-03-06 11:02:19 -05:00
Erick Tryzelaar
743cfce703
core: convert vec::{last,last_opt} to return references
2013-03-05 19:39:18 -08:00
Erick Tryzelaar
359bb3e10b
core: convert vec::{head,head_opt} to return references
2013-03-05 19:37:04 -08:00
bors
dec599f652
auto merge of #5234 : pcwalton/rust/equiv, r=pcwalton
...
r? @nikomatsakis
2013-03-05 12:12:50 -08:00
bors
4c8e12ea97
auto merge of #5232 : bstrie/rust/issue4448, r=nikomatsakis
2013-03-05 11:09:44 -08:00
Patrick Walton
c4075492ad
librustc: Fix silly bug in AST conversion for const vstores. rs=bugfix
...
Means that we'll need another snapshot to rid the language of `[const T]`.
2013-03-05 10:18:36 -08:00
Patrick Walton
6d4ed5283c
libsyntax: Separate multiple inherited traits with +
2013-03-05 10:18:35 -08:00
Niko Matsakis
cbfd88a486
Update region inference for traits so that a method with
...
explicit self doesn't incorrectly cause the entire trait to
be tagged as being region-parameterized.
Fixes #5224 .
2013-03-05 08:46:23 -05:00
bors
65986ba0c0
auto merge of #5215 : jld/rust/fn-const-env, r=graydon
...
Fixes #5210 ; unblocks #5183 .
2013-03-05 03:12:43 -08:00
bors
eddefbc893
auto merge of #5212 : thestinger/rust/iter, r=graydon
...
A small step towards fixing #2827
2013-03-05 02:06:50 -08:00
Ben Striegel
deaf3fdf6e
Add test for issue #4448
2013-03-04 22:33:51 -05:00
Patrick Walton
0643df28a3
libsyntax: Implement #[deriving_clone]
2013-03-04 16:13:15 -08:00
Jed Davis
eb1c632201
Add a test case for const fn sizing, just to be safe.
2013-03-03 17:22:51 -08:00
Daniel Micay
af645e8487
replace option::iter with a BaseIter impl
2013-03-03 11:01:17 -05:00
Patrick Walton
30bb09c0e7
test: Remove fn@
, fn~
, and fn&
from the test suite. rs=defun
2013-03-02 18:47:47 -08:00
Patrick Walton
a3f728238b
librustc: Forbid chained imports and fix the logic for one-level renaming imports
2013-03-02 16:49:30 -08:00
bors
5aca7d6aef
auto merge of #5137 : yjh0502/rust/empty_struct, r=nikomatsakis
...
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-02 04:21:38 -08:00
Jihyun Yu
95bc9ea26d
Remove REC, change related tests/docs
2013-03-02 12:57:05 +09:00
Brian Anderson
bcf626812b
Rename core::private to core::unstable. #4743
2013-03-01 14:55:47 -08:00
bors
a660bb362c
auto merge of #5180 : catamorphism/rust/post-snapshot, r=catamorphism
...
* Disallow structural records everywhere
* Remove all #[cfg(stage0)] stuff
* Remove the last deprecated modes in libcore
* Un-xfail a test
2013-02-28 22:45:37 -08:00
Tim Chevalier
6b6d15ac20
Remove code that was awaiting a snapshot
...
* Disallow structural records everywhere
* Remove all #[cfg(stage0)] stuff
* Remove the last deprecated modes in libcore
* Un-xfail a test
2013-02-28 20:30:50 -08:00
Niko Matsakis
4ecb672d7f
Remove legacy object creation mode, and convert remaining uses of it
2013-02-28 20:28:04 -05:00
Patrick Walton
107bf96ff0
librustc: Mark all type implementations public. rs=impl-publicity
2013-02-28 11:32:24 -08:00
Ben Striegel
43d43adf6b
Turn old drop
blocks into Drop
traits
2013-02-27 19:14:19 -05:00
bors
33e7a1f087
auto merge of #5145 : Kimundi/rust/incoming, r=catamorphism
2013-02-27 13:27:48 -08:00
Patrick Walton
07c3f5c0de
librustc: Forbid pub
or priv
before trait implementations
2013-02-27 09:40:16 -08:00
Patrick Walton
573a31dfa7
libsyntax: Forbid mutable vectors. rs=demuting
2013-02-27 09:40:16 -08:00
Marvin Löbel
c2be2ec42d
Added ToStr implementations for &[T] and @[T]
2013-02-27 16:02:53 +01:00
bors
0e6d895ed8
auto merge of #5119 : Kimundi/rust/incoming, r=catamorphism
...
Removed deprecated `str()` functions in int-template.rs and uint-template.rs
2013-02-26 10:54:39 -08:00
Marvin Löbel
42b0bacd76
Removed deprecated str()
functions in int-template.rs and uint-template.rs
2013-02-26 16:38:30 +01:00
Patrick Walton
e3d43e490b
test: De-~mut the test suite. rs=demuting
2013-02-26 04:18:12 -08:00
Patrick Walton
c483aab4ae
librustc: Implement a lint mode for mutable structures; deny by default. r=tjc
2013-02-26 04:18:11 -08:00
bors
e1a4e66755
auto merge of #5109 : bstrie/rust/decapclause, r=pcwalton
...
I also deleted a test that would be entirely useless without capture clauses.
2013-02-25 23:30:38 -08:00
Ben Striegel
abc4ea2001
Stop parsing capture clauses
2013-02-25 19:49:28 -05:00
Patrick Walton
00d8db5b5d
Revert "test: De-~mut the test suite. rs=demuting"
...
This reverts commit f63efdc210
.
2013-02-25 15:16:36 -08:00
Patrick Walton
f63efdc210
test: De-~mut the test suite. rs=demuting
2013-02-25 15:15:42 -08:00
Patrick Walton
a08eda4b63
test: Residual de-muting of the test suite. rs=demuting
2013-02-25 15:15:20 -08:00
Patrick Walton
82062a6348
test: De-mut the test suite. rs=demuting
2013-02-22 18:35:01 -08:00
Brian Anderson
ddd9fb6c1e
Remove legacy_modes from test cases
2013-02-22 14:53:44 -08:00
bors
c316189d15
auto merge of #5081 : brson/rust/pipes, r=pcwalton
...
r?
2013-02-22 11:24:38 -08:00
Brian Anderson
dab6a85230
core: Extract comm from pipes. #4742
2013-02-21 17:36:54 -08:00
Luqman Aden
9ea6a49696
Remove the last bits of structural records from tests/rustc/rusti/rustpkg.
2013-02-21 15:19:40 -08:00
bors
e0767bf24f
auto merge of #5068 : sethpink/rust/derive-eq-tuple-struct, r=catamorphism
...
Previously an unimplemented error was thrown when using #[deriving_eq] on tuple-like struct definitions.
2013-02-21 12:30:34 -08:00
bors
c0218fb106
auto merge of #5069 : pcwalton/rust/plussing-2, r=pcwalton
2013-02-21 08:35:12 -08:00
Patrick Walton
c0defda499
librustc: Separate the rest of the trait bounds with +
and stop parsing space-separated ones. rs=plussing
2013-02-21 08:29:48 -08:00
bors
41a4151173
auto merge of #5065 : catamorphism/rust/issue-3453, r=catamorphism
...
...because it appears to work now. Removes a FIXME.
2013-02-20 22:36:31 -08:00
Seth Pink
6f9eb6aa3c
Implement #[deriving_eq] on tuple like structs
2013-02-21 15:32:20 +10:00
bors
a02da4ecde
auto merge of #5063 : pcwalton/rust/plussing, r=pcwalton
2013-02-20 21:22:30 -08:00
Patrick Walton
bf2a225c0b
librustc: Separate most trait bounds with '+'. rs=plussing
2013-02-20 21:14:20 -08:00