about summary refs log tree commit diff
path: root/src/libsyntax/ext/source_util.rs
AgeCommit message (Collapse)AuthorLines
2019-02-11Require a list of features to allow in `allow_internal_unstable`Oliver Scherer-1/+1
2019-02-07libsyntax => 2018Taiki Endo-21/+20
2018-12-30Improve error recovery for some built-in macrosVadim Petrochenkov-1/+1
2018-12-25Remove licensesMark Rousskov-10/+0
2018-12-07use top level `fs` functions where appropriateAndy Russell-31/+23
This commit replaces many usages of `File::open` and reading or writing with `fs::read_to_string`, `fs::read` and `fs::write`. This reduces code complexity, and will improve performance for most reads, since the functions allocate the buffer to be the size of the file. I believe that this commit will not impact behavior in any way, so some matches will check the error kind in case the file was not valid UTF-8. Some of these cases may not actually care about the error.
2018-12-04adds DocTest filename variant, refactors doctest_offset out of source_map, ↵Matthew Russo-0/+1
fixes remaining test failures
2018-12-04new_source_file no longer enters duplicate files, expand_include_bytes ↵Matthew Russo-3/+6
includes the source if it can convert bytes to string
2018-11-06refactor: use shorthand fieldsteresy-1/+1
2018-09-26Remove OneVectorljedrz-4/+4
2018-08-23use String::new() instead of String::from(""), "".to_string(), "".to_owned() ↵Matthias Krüger-1/+1
or "".into()
2018-08-19mv codemap() source_map()Donato Sciarra-6/+6
2018-08-19mv filemap source_fileDonato Sciarra-3/+3
2018-08-13Move SmallVec and ThinVec out of libsyntaxljedrz-3/+3
2018-07-10Deny bare trait objects in in src/libsyntaxljedrz-9/+9
2018-06-27Remove the now redundant CodeMap::new_filemap_with_lines() method.Michael Woerister-3/+5
2018-03-02Replace Rc with Lrc for shared dataJohn Kåre Alsaker-2/+2
2018-01-26Do not capture stderr in the compiler. Instead just panic silently for fatal ↵John Kåre Alsaker-2/+3
errors
2017-12-24Make column macro output 1 based and document itest31-1/+1
2017-12-19Implement non-mod.rs mod statementsTaylor Cramer-1/+1
2017-12-14Use PathBuf instead of String where applicableOliver Schneider-13/+15
2017-10-03Rename FileMap::path and change to an OptionPhilip Craig-1/+1
2017-09-30Don't use remapped path when loading modules and include filesPhilip Craig-1/+1
2017-08-30Make fields of `Span` privateVadim Petrochenkov-3/+3
2017-08-13Rollup merge of #43782 - nrc:include, r=GuillaumeGomezGuillaume Gomez-5/+6
Fix include! in doc tests By making the path relative to the current file. Fixes #43153 [breaking-change] - if you use `include!` inside a doc test, you'll need to change the path to be relative to the current file rather than relative to the working directory.
2017-08-10Some tidying up around include!Nick Cameron-5/+6
2017-08-10Add a feature gateest31-0/+10
@alexcrichton figured out a way how to do it :)
2017-05-19Rollup merge of #42006 - jseyfried:fix_include_regression, r=nrcMark Simulacrum-3/+3
Fix ICE on `include!(line!())` (regression) Fixes #41776. r? @nrc
2017-05-15Fix regression on `include!(line!())`.Jeffrey Seyfried-3/+3
2017-05-12Fix some clippy warnings in libsyntaxAndre Bogus-2/+2
This is mostly removing stray ampersands, needless returns and lifetimes.
2017-04-26Implement a file-path remapping feature in support of debuginfo and ↵Michael Woerister-2/+2
reproducible builds.
2017-03-29Merge `ExpnId` and `SyntaxContext`.Jeffrey Seyfried-1/+1
2016-11-22Clean up directory ownership semantics.Jeffrey Seyfried-2/+3
2016-11-21Use `Symbol` instead of `InternedString` in the AST, HIR, and various other ↵Jeffrey Seyfried-7/+5
places.
2016-11-20Move `syntax::util::interner` -> `syntax::symbol`, cleanup.Jeffrey Seyfried-7/+5
2016-11-11Change implementation of syntax::util::SmallVector to use ↵Mark-Simulacrum-1/+1
data_structures::SmallVec.
2016-10-29Move `CrateConfig` from `Crate` to `ParseSess`.Jeffrey Seyfried-9/+2
2016-10-14Avoid many CrateConfig clones.Nicholas Nethercote-1/+1
This commit changes `ExtCtx::cfg()` so it returns a `CrateConfig` reference instead of a clone. As a result, it also changes all of the `cfg()` callsites to explicitly clone... except one, because the commit also changes `macro_parser::parse()` to take `&CrateConfig`. This is good, because that function can be hot, and `CrateConfig` is expensive to clone. This change almost halves the number of heap allocations done by rustc for `html5ever` in rustc-benchmarks suite, which makes compilation 1.20x faster.
2016-09-13Move macro resolution into `librustc_resolve`.Jeffrey Seyfried-2/+2
2016-09-05Refactor `SyntaxEnv`.Jeffrey Seyfried-5/+3
2016-06-27Auto merge of #34424 - jseyfried:breaking_batch, r=Manishearthbors-11/+11
Batch up libsyntax breaking changes Batch of the following syntax-[breaking-change] changes: - #34213: Add a variant `Macro` to `TraitItemKind` - #34368: Merge the variant `QPath` of `PatKind` into the variant `PatKind::Path` - #34385: Move `syntax::ast::TokenTree` into a new module `syntax::tokenstream` - #33943: - Remove the type parameter from `visit::Visitor` - Remove `attr::WithAttrs` -- use `attr::HasAttrs` instead. - Change `fold_tt`/`fold_tts` to take token trees by value and avoid wrapping token trees in `Rc`. - Remove the field `ctxt` of `ast::Mac_` - Remove inherent method `attrs()` of types -- use the method `attrs` of `HasAttrs` instead. - #34316: - Remove `ast::Decl`/`ast::DeclKind` and add variants `Local` and `Item` to `StmtKind`. - Move the node id for statements from the `StmtKind` variants to a field of `Stmt` (making `Stmt` a struct instead of an alias for `Spanned<StmtKind>`) - Rename `ast::ExprKind::Again` to `Continue`. - #34339: Generalize and abstract `ThinAttributes` to `ThinVec<Attribute>` - Use `.into()` in convert between `Vec<Attribute>` and `ThinVec<Attribute>` - Use autoderef instead of `.as_attr_slice()` - #34436: Remove the optional expression from `ast::Block` and instead use a `StmtKind::Expr` at the end of the statement list. - #34403: Move errors into a separate crate (unlikely to cause breakage)
2016-06-26Rollup merge of #34385 - cgswords:tstream, r=nrcJeffrey Seyfried-8/+9
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-24Revert a change to the relative path for macro-expanded `include!`sJeffrey Seyfried-1/+2
2016-06-23Move errors from libsyntax to its own crateJonathan Turner-3/+2
2016-06-21Refactored tokentrees into their own files in preparation for tokenstreams. ↵cgswords-8/+9
Modified tests to point to the new file now.
2016-06-16Add an abs_path member to FileMap, use it when writing debug info.Ted Mielczarek-2/+2
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-02-11[breaking-change] don't pub export ast::Lit_ variantsOliver Schneider-1/+1
2015-12-30use structured errorsNick Cameron-5/+3
2015-11-10Rename _nopanic methods to remove the suffix.Eli Friedman-2/+2
Just `sed s/_nopanic//g`. Hopefully makes libsyntax a bit more readable.
2015-10-27Don't use panicking helpers in Parser.Eli Friedman-2/+2
2015-09-03Use consistent terminology for byte string literalsVadim Petrochenkov-1/+1
Avoid confusion with binary integer literals and binary operator expressions in libsyntax