summary refs log tree commit diff
path: root/src/libsyntax/ext/build.rs
AgeCommit message (Collapse)AuthorLines
2015-05-21syntax: parse `const fn` for free functions and inherent methods.Eduard Burtescu-0/+1
2015-05-02Rename AstBuilder::expr_int -> AstBuilder::expr_isizeManish Goregaokar-2/+2
2015-04-11Change the rt::unwind line argument type from usize to u32.Ryan Prichard-1/+1
2015-03-25rustc: Remove support for int/uintAlex Crichton-2/+2
This commit removes all parsing, resolve, and compiler support for the old and long-deprecated int/uint types.
2015-02-24Implement `<T>::method` UFCS expression syntax.Eduard Burtescu-13/+13
2015-02-24syntax: use a single Path for Trait::Item in QPath.Eduard Burtescu-22/+22
2015-02-24syntax: don't store a secondary NodeId for TyPath.Eduard Burtescu-1/+1
2015-02-24Remove double expr_u32 (fixup #22700)Manish Goregaokar-3/+0
2015-02-24Rollup merge of #22700 - nick29581:ints_hash, r=alexcrichtonManish Goregaokar-0/+3
fmt and hash are pretty straightforward I think. sync is a bit more complex. I thought one or two of the `isize`s ought to be `i32`s, but that would require a bunch of casting (the root cause being the lack of atomics other than isize/usize). r? @alexcrichton
2015-02-23int audit - libcore::fmtNick Cameron-0/+4
2015-02-23Auto merge of #21769 - brooksbp:column-line-macro, r=nick29581bors-0/+4
Please see discussion in #19284 .
2015-02-21Resolve barriers to changing column!() / line!() return type to u32 in ↵Brian Brooks-0/+4
#19284 . Address review comments in #21769 .
2015-02-21Resolve includeme.fragment conflict.Brian Brooks-3/+3
2015-02-20Remove remaining uses of `[]`. This time I tried to use deref coercions ↵Niko Matsakis-1/+1
where possible.
2015-02-10rollup merge of #21943: hugwijst/extctxt_ufcsAlex Crichton-0/+56
Add `QPath` construction support to `ExtCtxt`. Allows compiler plugins to generate calls with UFCS.
2015-02-09Accept quantification of lifetimes outside the self type in where clauses.Nick Cameron-4/+5
Closes #20022
2015-02-07Don't use std:: paths in syntax extensions when compiling a #![no_std] crateKeegan McAllister-17/+28
Fixes #16803. Fixes #14342. Fixes half of #21827 -- slice syntax is still broken.
2015-02-06Libsyntax has been updatedGuillaumeGomez-3/+1
2015-02-06Replace the get method by the deref one on InternedStringGuillaumeGomez-1/+2
2015-02-04Add QPath construction to ExtCtxt for UFCS support.Hugo van der Wijst-0/+56
2015-02-03Remove the explicit closure kind syntax from the parser and AST;Niko Matsakis-2/+2
upgrade the inference based on expected type so that it is able to infer the fn kind in isolation even if the full signature is not available (and we could perhaps do better still in some cases, such as extracting just the types of the arguments but not the return value).
2015-01-25Add the span of the operator itself to ast::BinOp.Huon Wilson-3/+3
2015-01-21rollup merge of #20179: eddyb/blind-itemsAlex Crichton-41/+36
Conflicts: src/librustc/diagnostics.rs src/librustdoc/clean/mod.rs src/librustdoc/html/format.rs src/libsyntax/parse/parser.rs
2015-01-21syntax: fix fallout of merging ast::ViewItem into ast::Item.Eduard Burtescu-41/+36
2015-01-18libsyntax: int types -> isizePaul Collier-2/+2
2015-01-17libsyntax: rename functions from uint to usizePaul Collier-5/+5
2015-01-17libsyntax: uint types to usizePaul Collier-4/+4
2015-01-08Store deprecated status of i/u-suffixed literals.Huon Wilson-2/+3
2015-01-07use slicing sugarJorge Aparicio-2/+1
2015-01-06rollup merge of #20609: cmr/memAlex Crichton-2/+2
2015-01-07Replace full slice notation with index callsNick Cameron-1/+1
2015-01-06syntax/rustc: implement isize/usizeCorey Richardson-2/+2
2015-01-02Make type in ast::Local optionalSeo Sanghyeon-2/+2
2014-12-26Accept `?Sized` as well as `Sized?`Nick Cameron-4/+1
Includes a bit of refactoring to store `?` unbounds as bounds with a modifier, rather than in their own world, in the AST at least.
2014-12-21Fallout of std::str stabilizationAlex Crichton-2/+1
2014-12-20Drop the Match prefix from the MatchSource variantsBarosl Lee-1/+1
2014-12-14Rename FnStyle trait to Unsafety.Niko Matsakis-1/+1
2014-12-12Add support for equality constraints on associated typesNick Cameron-5/+9
2014-12-05Utilize fewer reexportsCorey Farwell-0/+8
In regards to: https://github.com/rust-lang/rust/issues/19253#issuecomment-64836729 This commit: * Changes the #deriving code so that it generates code that utilizes fewer reexports (in particur Option::* and Result::*), which is necessary to remove those reexports in the future * Changes other areas of the codebase so that fewer reexports are utilized
2014-11-26Rote changes due to the fact that ast paths no longer carry this extraneous ↵Niko Matsakis-8/+15
bounds.
2014-11-23Remove type parameters from ExprField and ExprTupFieldAdolfo Ochagavía-2/+2
2014-11-19Merge the ExprFnBlock and ExprUnboxedClosure into one ExprClosure with an ↵Niko Matsakis-2/+2
optional unboxed closure kind.
2014-11-16Complete the removal of ty_nil, ast::LitNil, ast::TyBot and ast::TyUniqJakub Bukaj-18/+3
[breaking-change] This will break any uses of macros that assumed () being a valid literal.
2014-11-07Update parser with `for` syntaxNiko Matsakis-4/+11
2014-11-06Support parenthesized paths `Foo(A,B) -> C` that expand to `Foo<(A,B),C>`. ↵Niko Matsakis-4/+5
These paths also bind anonymous regions (or will, once HRTB is fully working). Fixes #18423.
2014-10-24Add a lint for not using field pattern shorthandsP1start-2/+2
Closes #17792.
2014-10-19Remove a large amount of deprecated functionalityAlex Crichton-1/+1
Spring cleaning is here! In the Fall! This commit removes quite a large amount of deprecated functionality from the standard libraries. I tried to ensure that only old deprecated functionality was removed. This is removing lots and lots of deprecated features, so this is a breaking change. Please consult the deprecation messages of the deleted code to see how to migrate code forward if it still needs migration. [breaking-change]
2014-10-10Desugar `while let` into `loop { match { ... } }`John Gallagher-0/+8
2014-10-09rustc: Add `const` globals to the languageAlex Crichton-0/+16
This change is an implementation of [RFC 69][rfc] which adds a third kind of global to the language, `const`. This global is most similar to what the old `static` was, and if you're unsure about what to use then you should use a `const`. The semantics of these three kinds of globals are: * A `const` does not represent a memory location, but only a value. Constants are translated as rvalues, which means that their values are directly inlined at usage location (similar to a #define in C/C++). Constant values are, well, constant, and can not be modified. Any "modification" is actually a modification to a local value on the stack rather than the actual constant itself. Almost all values are allowed inside constants, whether they have interior mutability or not. There are a few minor restrictions listed in the RFC, but they should in general not come up too often. * A `static` now always represents a memory location (unconditionally). Any references to the same `static` are actually a reference to the same memory location. Only values whose types ascribe to `Sync` are allowed in a `static`. This restriction is in place because many threads may access a `static` concurrently. Lifting this restriction (and allowing unsafe access) is a future extension not implemented at this time. * A `static mut` continues to always represent a memory location. All references to a `static mut` continue to be `unsafe`. This is a large breaking change, and many programs will need to be updated accordingly. A summary of the breaking changes is: * Statics may no longer be used in patterns. Statics now always represent a memory location, which can sometimes be modified. To fix code, repurpose the matched-on-`static` to a `const`. static FOO: uint = 4; match n { FOO => { /* ... */ } _ => { /* ... */ } } change this code to: const FOO: uint = 4; match n { FOO => { /* ... */ } _ => { /* ... */ } } * Statics may no longer refer to other statics by value. Due to statics being able to change at runtime, allowing them to reference one another could possibly lead to confusing semantics. If you are in this situation, use a constant initializer instead. Note, however, that statics may reference other statics by address, however. * Statics may no longer be used in constant expressions, such as array lengths. This is due to the same restrictions as listed above. Use a `const` instead. [breaking-change] [rfc]: https://github.com/rust-lang/rfcs/pull/246
2014-10-02syntax: ast: remove TyBox and UnBox.Eduard Burtescu-5/+0