about summary refs log tree commit diff
path: root/src/libsyntax/parse/mod.rs
AgeCommit message (Collapse)AuthorLines
2016-10-19Improve `$crate`.Jeffrey Seyfried-1/+1
2016-09-26add unstable_features to ParseSessTim Neumann-0/+3
2016-09-16Overhaul char_lit().Nicholas Nethercote-43/+28
This commit does the following. - Removes parsing support for '\X12', '\u123456' and '\U12345678' char literals. These are no longer valid Rust and rejected by the lexer. (This strange-sounding situation occurs because the parser rescans char literals to compute their value.) - Rearranges the function so that all the escaped values are handled in a single `match`, and changes the error-handling to use vanilla assert!() and unwrap().
2016-09-12Lazily construct panic messages in char_lit().Nicholas Nethercote-5/+7
This reduces the time taken to run `rustc -Zparse-only rustc-benchmarks/issue-32278-big-array-of-strings` from 0.18s to 0.15s on my machine, and reduces the number of instructions (as measured by Cachegrind) from 1.34B to 1.01B. With the change applied, the time to fully compile that benchmark is 1.96s, so this is a 1.5% improvement.
2016-09-12Avoid an unnecessary intermediate value in char_lit().Nicholas Nethercote-14/+9
This makes the function more concise and easier to understand.
2016-08-28Rollup merge of #35917 - jseyfried:remove_attr_ext_traits, r=nrcJeffrey Seyfried-1/+1
syntax: Remove traits `AttrMetaMethods`, `AttributeMethods`, and `AttrNestedMetaItemMethods`
2016-08-28Rollup merge of #35480 - KiChjang:e0379-bonus, r=nikomatsakisJeffrey Seyfried-1/+4
Move E0379 check from typeck to ast validation Part of #35233. Extension of #35338, #35364. Fixes #35404.
2016-08-27Change Constness to Spanned<Constness>Keith Yeung-1/+4
2016-08-25Refactor away `AttrMetaMethods`.Jeffrey Seyfried-1/+1
2016-08-18Add Span field for Generics structsGuillaume Gomez-2/+3
2016-08-07Turn on new errors, json mode. Remove duplicate unicode testJonathan Turner-1/+0
2016-08-01Reimplemented tokenstreams as ropes and reduced the exposed TokenStream API.cgswords-1/+1
2016-07-17Auto merge of #34829 - cgswords:tstream, r=nrcbors-1/+9
Added tokenstream parser procedure A tiny PR that simply adds a procedure for parsing `TokenStream`s to the parser in `src/libsyntax`. This is to ease using `TokenStream`s with the current (old) procedural macro system.
2016-07-15Added tokenstream parser procedurecgswords-1/+9
2016-07-14Remove BasicEmitterJonathan Turner-1/+5
2016-07-04Revert "Change `fold_tt` and `fold_tts` to take token trees by value ↵Jeffrey Seyfried-7/+8
(instead of by reference)" This reverts commit 5bf7970ac70b4e7781e7b2f3816720aa62fac6fd.
2016-06-26Rollup merge of #34436 - jseyfried:no_block_expr, r=eddybJeffrey Seyfried-1/+0
To allow these braced macro invocation, this PR removes the optional expression from `ast::Block` and instead uses a `StmtKind::Expr` at the end of the statement list. Currently, braced macro invocations in blocks can expand into statements (and items) except when they are last in a block, in which case they can only expand into expressions. For example, ```rust macro_rules! make_stmt { () => { let x = 0; } } fn f() { make_stmt! {} //< This is OK... let x = 0; //< ... unless this line is commented out. } ``` Fixes #34418.
2016-06-26Rollup merge of #34339 - jseyfried:thin_vec, r=petrochenkov,ManishearthJeffrey Seyfried-6/+7
Generalize and abstract `ThinAttributes` to `ThinVec<Attribute>`.
2016-06-26Rollup merge of #34316 - jseyfried:refactor_ast_stmt, r=eddybJeffrey Seyfried-6/+6
Refactor away `ast::Decl`, refactor `ast::Stmt`, and rename `ast::ExprKind::Again` to `ast::ExprKind::Continue`.
2016-06-26Rollup merge of #33943 - jseyfried:libsyntax_cleanup, r=nrcJeffrey Seyfried-10/+9
Miscellaneous low priority cleanup in `libsyntax`.
2016-06-26Rollup merge of #34385 - cgswords:tstream, r=nrcJeffrey Seyfried-8/+10
syntax-[breaking-change] cc #31645 (Only breaking because ast::TokenTree is now tokenstream::TokenTree.) This pull request refactors TokenTrees into their own file as src/libsyntax/tokenstream.rs, moving them out of src/libsyntax/ast.rs, in order to prepare for an accompanying TokenStream implementation (per RFC 1566).
2016-06-24Add `ecx.stmt_semi()` and fix issues with the pretty-printerJeffrey Seyfried-1/+0
2016-06-23Address more travis errorsJonathan Turner-1/+2
2016-06-23Move errors from libsyntax to its own crateJonathan Turner-5/+6
2016-06-21Refactored tokentrees into their own files in preparation for tokenstreams. ↵cgswords-8/+10
Modified tests to point to the new file now.
2016-06-19Generalize and abstract `ThinAttributes`Jeffrey Seyfried-6/+7
2016-06-17Fix falloutJeffrey Seyfried-6/+6
2016-06-16Add an abs_path member to FileMap, use it when writing debug info.Ted Mielczarek-1/+1
When items are inlined from extern crates, the filename in the debug info is taken from the FileMap that's serialized in the rlib metadata. Currently this is just FileMap.name, which is whatever path is passed to rustc. Since libcore and libstd are built by invoking rustc with relative paths, they wind up with relative paths in the rlib, and when linked into a binary the debug info uses relative paths for the names, but since the compilation directory for the final binary, tools trying to read source filenames will wind up with bad paths. We noticed this in Firefox with source filenames from libcore/libstd having bad paths. This change stores an absolute path in FileMap.abs_path, and uses that if available for writing debug info. This is not going to magically make debuggers able to find the source, but it will at least provide sensible paths.
2016-06-14Remove the type parameter from `syntax::visit::Visitor`Jeffrey Seyfried-2/+2
2016-06-14Change `fold_tt` and `fold_tts` to take token trees by value (instead of by ↵Jeffrey Seyfried-8/+7
reference)
2016-05-02replace fileline_{help,note} with {help,note}Niko Matsakis-5/+5
The extra filename and line was mainly there to keep the indentation relative to the main snippet; now that this doesn't include filename/line-number as a prefix, it is distracted.
2016-04-24Remove some old code from libsyntaxVadim Petrochenkov-1/+1
2016-04-24syntax: Get rid of token::IdentStyleVadim Petrochenkov-23/+11
2016-04-12Remove unused trait importsSeo Sanghyeon-1/+0
2016-02-19Do less panicking in generalJonas Schievink-0/+4
2016-02-16Move more uses of `panictry!` out of libsyntaxJonas Schievink-72/+58
[breaking-change] for syntax extensions
2016-02-13Rename ast::Pat_ and its variantsVadim Petrochenkov-4/+4
2016-02-12Use more autoderef in libsyntaxJonas Schievink-7/+7
2016-02-11Remove some unnecessary indirection from AST structuresVadim Petrochenkov-5/+5
2016-02-11[breaking-change] don't glob export ast::Visibility variantsOliver 'ker' Schneider-1/+1
2016-02-11[breaking-change] don't glob export ast::Mutablity variantsOliver 'ker' Schneider-2/+2
2016-02-11[breaking-change] don't glob export ast::Item_ variantsOliver 'ker' Schneider-1/+1
2016-02-11[breaking-change] don't pub export ast::Stmt_ variantsOliver Schneider-2/+2
2016-02-11[breaking-change] don't pub export ast::IntLitType variantsOliver Schneider-11/+11
2016-02-11[breaking-change] don't pub export ast::Lit_ variantsOliver Schneider-9/+9
2016-02-11[breaking-change] don't pub export ast::Ty_ variantsOliver Schneider-1/+1
2016-02-11[breaking-change] remove the sign from integer literals in the astOliver Schneider-18/+10
2016-02-11[breaking-change] don't glob export ast::{UintTy, IntTy} variantsOliver Schneider-10/+10
2016-02-11[breaking-change] don't glob export ast::FloatTy variantsOliver Schneider-2/+2
2016-02-11[breaking-change] don't glob export ast::Expr_ variantsOliver Schneider-7/+7