TheZoq2
422e0d590f
Update E0004 to use labels
2016-08-05 21:07:34 +02:00
Ariel Ben-Yehuda
5c717a6fc2
implement RFC495 semantics for slice patterns
...
non-MIR translation is still not supported for these and will happily ICE.
This is a [breaking-change] for many uses of slice_patterns.
2016-06-09 00:38:38 +03:00
Vincent Esche
70692ce279
Refined error message to truncate at 3 and hint at number of hidden patterns for excessive cases.
2016-01-21 22:33:27 +01:00
Vincent Esche
48e8326893
Refined error message.
...
More human-readable error message showing ellipsis for excessively long witness lists.
2016-01-19 15:02:42 +01:00
Vincent Esche
6100743842
Improve error message for non-exhaustive patterns
...
Changes error message from displaying first found missing constructor witness to showing up to 10, if necessary.
Fixes issue #16884 .
2016-01-19 08:42:55 +01:00
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
Eduard Burtescu
e64670888a
Remove integer suffixes where the types in compiled code are identical.
2015-03-05 12:38:33 +05:30
Niko Matsakis
72eb214ee4
Update suffixes en masse in tests using perl -p -i -e
2015-02-18 09:10:10 -05: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
85f961e2cc
Update compile fail tests to use usize.
2015-01-08 11:02:24 -05:00
Nick Cameron
2e86929a4a
Allow use of [_ ; n]
syntax for fixed length and repeating arrays.
...
This does NOT break any existing programs because the `[_, ..n]` syntax is also supported.
2014-12-20 15:23:29 +13: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
Nick Cameron
ca08540a00
Fix fallout from coercion removal
2014-11-17 22:41:33 +13:00
Steven Fackler
579c65da1b
Un-feature gate struct variants
...
Struct variant field visibility is now inherited. Remove `pub` keywords
from declarations.
Closes #18641
[breaking-change]
2014-11-15 18:15:27 -08:00
Alex Crichton
8158463122
rollup merge of #17054 : pcwalton/subslice-syntax
2014-09-09 12:07:12 -07: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
22179f49e5
librustc: Feature gate subslice matching in non-tail positions.
...
This breaks code that uses the `..xs` form anywhere but at the end of a
slice. For example:
match foo {
[ 1, ..xs, 2 ]
[ ..xs, 1, 2 ]
}
Add the `#![feature(advanced_slice_patterns)]` gate to reenable the
syntax.
RFC #54 .
Closes #16951 .
[breaking-change]
2014-09-08 11:04:14 -07:00
Jakub Wieczorek
947942e42c
Improve non-exhaustive pattern witnesses for structs with multiple fields
2014-07-07 22:00:34 +02:00
Jakub Wieczorek
c484c2d1f8
Fix #15129
...
Add support for unit literals to const_eval.
2014-06-24 17:22:48 -07:00
Patrick Walton
654d6444fe
libsyntax: Disallow struct literals after if
, while
, match
, and
...
`for...in`.
Closes #14803 .
If you used a structure literal after one of these keywords, surround it
in parentheses.
[breaking-change]
2014-06-23 15:39:29 -07:00
Jakub Wieczorek
abce42afa3
Address review comments
2014-06-20 17:41:19 +02:00