Brian Anderson
1639e51f6e
Feature gate *all* slice patterns. #23121
...
Until some backwards-compatibility hazards are fixed in #23121 ,
these need to be unstable.
[breaking-change]
2015-03-27 12:50:49 -07:00
Jorge Aparicio
17bc7d8d5b
cleanup: replace as[_mut]_slice()
calls with deref coercions
2015-02-05 13:45:01 -05:00
Tobias Bucher
b4a43f3864
Kill more isize
s
2015-01-31 17:40:40 +01:00
Huon Wilson
441044f071
Update compile-fail tests to use is/us, not i/u.
2015-01-08 11:02:24 -05:00
Huon Wilson
0c70ce1424
Update compile fail tests to use isize.
2015-01-08 11:02:24 -05:00
Steven Fackler
3dcd215740
Switch to purely namespaced enums
...
This breaks code that referred to variant names in the same namespace as
their enum. Reexport the variants in the old location or alter code to
refer to the new locations:
```
pub enum Foo {
A,
B
}
fn main() {
let a = A;
}
```
=>
```
pub use self::Foo::{A, B};
pub enum Foo {
A,
B
}
fn main() {
let a = A;
}
```
or
```
pub enum Foo {
A,
B
}
fn main() {
let a = Foo::A;
}
```
[breaking-change]
2014-11-17 07:35:51 -08:00
Patrick Walton
eb678ff87f
librustc: Change the syntax of subslice matching to use postfix ..
...
instead of prefix `..`.
This breaks code that looked like:
match foo {
[ first, ..middle, last ] => { ... }
}
Change this code to:
match foo {
[ first, middle.., last ] => { ... }
}
RFC #55 .
Closes #16967 .
[breaking-change]
2014-09-08 16:12:13 -07:00
Patrick Walton
a5bb0a3a45
librustc: Remove the fallback to int
for integers and f64
for
...
floating point numbers for real.
This will break code that looks like:
let mut x = 0;
while ... {
x += 1;
}
println!("{}", x);
Change that code to:
let mut x = 0i;
while ... {
x += 1;
}
println!("{}", x);
Closes #15201 .
[breaking-change]
2014-06-29 11:47:58 -07:00
Jakub Wieczorek
abce42afa3
Address review comments
2014-06-20 17:41:19 +02:00
Jakub Wieczorek
34407dcdbb
Provide a witness pattern for non-exhaustive patterns
...
Fixed #4321
2014-06-20 17:08:57 +02:00
Patrick Walton
af79a5aa7d
test: Make manual changes to deal with the fallout from removal of
...
`~[T]` in test, libgetopts, compiletest, librustdoc, and libnum.
2014-03-21 23:37:21 +11:00
Patrick Walton
579eb2400b
test: Automatically remove all ~[T]
from tests.
2014-03-21 23:37:21 +11:00
Patrick Walton
33923f47e3
librustc: Remove unique vector patterns from the language.
...
Preparatory work for removing unique vectors from the language, which is
itself preparatory work for dynamically sized types.
2014-02-19 16:35:31 -08:00
Derek Guenther
730bdb6403
Added tests to make tidy
2014-02-07 12:49:24 -06:00
Patrick Walton
119c6141f5
librustc: Remove @
pointer patterns from the language
2014-01-13 14:45:21 -08:00
Alex Crichton
0f6537fed4
Gate literal box expressions in addition to types
...
Closes #10920
2013-12-12 00:49:57 -08:00
Alex Crichton
ab387a6838
Register new snapshots
2013-11-28 20:27:56 -08:00
Jakub Wieczorek
1968cb315a
Add support for destructuring vectors in match expressions
2012-12-17 16:50:40 -08:00
Graydon Hoare
d1affff623
Reliciense makefiles and testsuite. Yup.
2012-12-10 17:32:58 -08:00
Brian Anderson
8337fa1a54
Camel case the option type
2012-08-26 15:56:16 -07:00
Brian Anderson
ecaf9e39c9
Convert alt to match. Stop parsing alt
2012-08-06 15:36:30 -07:00
Brian Anderson
025d86624d
Switch alts to use arrows
2012-08-05 22:08:09 -07:00
Gareth Daniel Smith
6d86969260
change the test suite //! kind
syntax to //~ kind
in order to avoid a
...
conflict with the new single-line-sugared-inner-doc-comment (`//! ...`).
2012-06-30 12:23:59 +01:00
Marijn Haverbeke
d0d71838cd
Mention missing constructor when complaining about inexhaustive top-level pattern
...
It previously, uselessly, only pointed out the constructor when the
inexhaustive pattern was nested in some other pattern.
Closes #2337
2012-05-03 17:35:12 +02:00
Marijn Haverbeke
9f99c3263b
Rewrite exhaustiveness checker
...
Issue #2111
2012-04-25 09:15:17 +02:00
Marijn Haverbeke
67cc89f38d
Rewrite exhaustiveness checker
...
Issue #352
Closes #1720
The old checker would happily accept things like 'alt x { @some(a) { a } }'.
It now properly descends into patterns, checks exhaustiveness of booleans,
and complains when number/string patterns aren't exhaustive.
2012-02-15 15:47:42 +01:00
Tim Chevalier
fba35e1a3c
Require alts to be exhaustive
...
middle::check_alt does the work. Lots of changes to add default cases
into alts that were previously inexhaustive.
2012-01-31 10:08:24 -08:00