summary refs log tree commit diff
path: root/src/libsyntax
AgeCommit message (Collapse)AuthorLines
2014-06-28Rename all raw pointers as necessaryAlex Crichton-3/+7
2014-06-28auto merge of #15191 : pcwalton/rust/variance-in-trait-matching, r=huonwbors-1/+2
I believe that #5781 got fixed by the DST work. It duplicated the variance inference work in #12828. Therefore, all that is left in #5781 is adding a test. Closes #5781. r? @huonw
2014-06-28librustc: Match trait self types exactly.Patrick Walton-1/+2
This can break code that looked like: impl Foo for Box<Any> { fn f(&self) { ... } } let x: Box<Any + Send> = ...; x.f(); Change such code to: impl Foo for Box<Any> { fn f(&self) { ... } } let x: Box<Any> = ...; x.f(); That is, upcast before calling methods. This is a conservative solution to #5781. A more proper treatment (see the xfail'd `trait-contravariant-self.rs`) would take variance into account. This change fixes the soundness hole. Some library changes had to be made to make this work. In particular, `Box<Any>` is no longer showable, and only `Box<Any+Send>` is showable. Eventually, this restriction can be lifted; for now, it does not prove too onerous, because `Any` is only used for propagating the result of task failure. This patch also adds a test for the variance inference work in #12828, which accidentally landed as part of DST. Closes #5781. [breaking-change]
2014-06-28auto merge of #15233 : jbclements/rust/match-var-hygiene-etc, r=cmrbors-155/+232
This PR includes two big things and a bunch of little ones. 1) It enables hygiene for variables bound by 'match' expressions. 2) It fixes a bug discovered indirectly (#15221), wherein fold traversal failed to visit nonterminal nodes. 3) It fixes a small bug in the macro tutorial. It also adds tests for the first two, and makes a bunch of small comment improvements and cleanup.
2014-06-27comments onlyJohn Clements-1/+3
2014-06-27adjust fold to fold over interpolated items/exprs/etc.John Clements-19/+70
Closes #15221
2014-06-27removed incomplete commentJohn Clements-17/+0
as written, I don't believe this comment was helpful; I think it's better just to steer the reader toward a general understanding of hygiene.
2014-06-27added unit and standalone test for 15221, extra debugging outputJohn Clements-5/+26
2014-06-27undo helpful attempt to spell-checkJohn Clements-1/+1
Yes, that word is spelled \'memoization\'
2014-06-27remove trailing whitespaceJohn Clements-1/+1
2014-06-27hygiene for match-bound vars now implementedJohn Clements-24/+33
Closes #9384
2014-06-27improve match test case to include guardJohn Clements-4/+4
2014-06-27remove unnecessary abstractionJohn Clements-10/+5
2014-06-27cleanup and shiny new more-functional interfaceJohn Clements-55/+36
2014-06-27WIP match hygiene, compilesJohn Clements-12/+12
2014-06-27get rid of needless wrapper functionJohn Clements-14/+8
2014-06-27make fold_attribute part of Folder traitJohn Clements-23/+25
2014-06-27working on hygieneJohn Clements-12/+51
2014-06-27Update to 0.11.0 0.11.0Alex Crichton-2/+2
2014-06-26Remove unnecessary to_string callsPiotr Jawniak-32/+26
This commit removes superfluous to_string calls from various places
2014-06-25don't expand subexprs of for loop, just re-expand whole thing.John Clements-5/+6
Fixes #15167
2014-06-25remove misleading and unnecessary underscoresJohn Clements-2/+3
2014-06-25remove unneccessary pubs, shorten namesJohn Clements-9/+9
2014-06-25remove unneeded visit_ty methodsJohn Clements-9/+0
2014-06-25add unit test for match var hygieneJohn Clements-0/+12
2014-06-25enrich and rename crate_idents test caseJohn Clements-6/+12
2014-06-25comments onlyJohn Clements-4/+9
2014-06-25revive old commented-out test cases as ignored test cases for hygieneJohn Clements-6/+59
2014-06-25Register new snapshotsAlex Crichton-1/+5
This change starts denying `*T` in the parser. All code using `*T` should ensure that the FFI call does indeed take `const T*` on the other side before renaming the type to `*const T`. Otherwise, all code can rename `*T` to `*const T`. [breaking-change]
2014-06-25auto merge of #15160 : alexcrichton/rust/remove-f128, r=brsonbors-11/+1
The f128 type has very little support in the compiler and the feature is basically unusable today. Supporting half-baked features in the compiler can be detrimental to the long-term development of the compiler, and hence this feature is being removed.
2014-06-24Make parse_expr_res publicKeegan McAllister-1/+1
2014-06-24Allow splicing more things in quotesKeegan McAllister-0/+16
2014-06-24Use macros to implement syntax::ext::quote::ToSourceKeegan McAllister-125/+74
This code deserves a bigger refactor, but here's a local improvement.
2014-06-24librustc: Remove the fallback to `int` from typechecking.Niko Matsakis-40/+23
This breaks a fair amount of code. The typical patterns are: * `for _ in range(0, 10)`: change to `for _ in range(0u, 10)`; * `println!("{}", 3)`: change to `println!("{}", 3i)`; * `[1, 2, 3].len()`: change to `[1i, 2, 3].len()`. RFC #30. Closes #6023. [breaking-change]
2014-06-24Remove the quad_precision_float feature gateAlex Crichton-11/+1
The f128 type has very little support in the compiler and the feature is basically unusable today. Supporting half-baked features in the compiler can be detrimental to the long-term development of the compiler, and hence this feature is being removed.
2014-06-24auto merge of #15118 : stepancheg/rust/concat, r=alexcrichtonbors-2/+5
(And in other extensions implemented with `get_exprs_from_tts` function).
2014-06-24auto merge of #14963 : w3ln4/rust/master, r=alexcrichtonbors-1/+2
The aim of these changes is not working out a generic bi-endianness architectures support but to allow people develop for little endian MIPS machines (issue #7190).
2014-06-24Added Mipsel architecture supportPawel Olzacki-1/+2
2014-06-24auto merge of #14952 : alexcrichton/rust/const-unsafe-pointers, r=brsonbors-4/+17
This does not yet change the compiler and libraries from `*T` to `*const T` as it will require a snapshot to do so. cc #7362 --- Note that the corresponding RFC, https://github.com/rust-lang/rfcs/pull/68, has not yet been accepted. It was [discussed at the last meeting](https://github.com/rust-lang/rust/wiki/Meeting-weekly-2014-06-10#rfc-pr-68-unsafe-pointers-rename-t-to-const-t) and decided to be accepted, however. I figured I'd get started on the preliminary work for the RFC that will be required regardless.
2014-06-24auto merge of #15105 : alexcrichton/rust/snapshots, r=luqmanabors-1/+0
2014-06-23libsyntax: Disallow struct literals after `if`, `while`, `match`, andPatrick Walton-14/+16
`for...in`. Closes #14803. If you used a structure literal after one of these keywords, surround it in parentheses. [breaking-change]
2014-06-23Allow trailing comma in `concat!`Stepan Koltsov-2/+5
(And in other extensions implemented with `get_exprs_from_tts` function).
2014-06-22Register new snapshotsAlex Crichton-1/+0
2014-06-22libsyntax: don't allow enum structs with no fieldsBenjamin Herr-0/+5
Unit-like structs are written as `struct Foo;`, but we erroneously accepted `struct Foo();` and took it to mean the same thing. Now we don't, so use the `struct Foo;` form! [breaking-change]
2014-06-21auto merge of #15062 : pcwalton/rust/trailing-plus, r=brsonbors-0/+6
This will break code that looks like `Box<Trait+>`. Change that code to `Box<Trait>` instead. Closes #14925. [breaking-change] r? @brson
2014-06-21auto merge of #15029 : aturon/rust/stability-index, r=brsonbors-1/+2
This commit makes several changes to the stability index infrastructure: * Stability levels are now inherited lexically, i.e., each item's stability level becomes the default for any nested items. * The computed stability level for an item is stored as part of the metadata. When using an item from an external crate, this data is looked up and cached. * The stability lint works from the computed stability level, rather than manual stability attribute annotations. However, the lint still checks only a limited set of item uses (e.g., it does not check every component of a path on import). This will be addressed in a later PR, as part of issue #8962. * The stability lint only applies to items originating from external crates, since the stability index is intended as a promise to downstream crates. * The "experimental" lint is now _allow_ by default. This is because almost all existing crates have been marked "experimental", pending library stabilization. With inheritance in place, this would generate a massive explosion of warnings for every Rust program. The lint should be changed back to deny-by-default after library stabilization is complete. * The "deprecated" lint still warns by default. The net result: we can begin tracking stability index for the standard libraries as we stabilize, without impacting most clients. Closes #13540.
2014-06-20libsyntax: Stop parsing `+` with no bounds after it.Patrick Walton-0/+6
This will break code that looks like `Box<Trait+>`. Change that code to `Box<Trait>` instead. Closes #14925. [breaking-change]
2014-06-20auto merge of #14988 : pcwalton/rust/unsafe-destructor-feature-gate, ↵bors-2/+3
r=alexcrichton Closes #8142. This is not the semantics we want long-term. You can continue to use `#[unsafe_destructor]`, but you'll need to add `#![feature(unsafe_destructor)]` to the crate attributes. [breaking-change] r? @alexcrichton
2014-06-20librustc: Put `#[unsafe_destructor]` behind a feature gate.Patrick Walton-2/+3
Closes #8142. This is not the semantics we want long-term. You can continue to use `#[unsafe_destructor]`, but you'll need to add `#![feature(unsafe_destructor)]` to the crate attributes. [breaking-change]
2014-06-20syntax: Parse GT tokens from `>=` and `>>=`Alex Crichton-1/+13
The parser already has special logic for parsing `>` tokens from `>>`, and this commit extends the logic to the acquiring a `>` from the `>=` and `>>=` tokens as well. Closes #15043