summary refs log tree commit diff
path: root/src/libsyntax/diagnostics
AgeCommit message (Collapse)AuthorLines
2015-07-28remove `get_ident` and `get_name`, make `as_str` soundOliver Schneider-11/+14
2015-07-17Improve register_long_diagnostics macroGuillaume Gomez-0/+3
2015-07-16Improve register_diagnostics macroGuillaume Gomez-0/+3
2015-06-20diagnostics: Resurrect the Compiler Error Index.Michael Sproul-87/+45
2015-06-14diagnostics: Allow long URLs in error explanations.Michael Sproul-2/+9
2015-06-07change some statics to constantsOliver 'ker' Schneider-2/+1
2015-05-22Remove error diagnostics uniqueness check and .json generation.Felix S. Klock II-17/+4
This is meant to be a temporary measure to get the builds to be reliable again; see also Issue #25705.
2015-04-30Add metadata output to the diagnostics system.Michael Sproul-34/+217
Diagnostic errors are now checked for uniqueness across the compiler and error metadata is written to JSON files.
2015-04-21syntax: remove #[feature(quote, unsafe_destructor)]Erick Tryzelaar-5/+43
2015-04-21syntax: Remove uses of #[feature(slice_patterns)]Erick Tryzelaar-9/+14
2015-04-17Enforce 80 char lines in extended errors.Michael Sproul-3/+12
2015-04-17Validate format of extended error descriptions.Michael Sproul-0/+12
2015-03-03Change span_help calls to fileline_help where appropriateIvan Radanov Ivanov-0/+7
2015-02-27Replace MacExpr / MacPat / MacItems with MacEagerKeegan McAllister-5/+6
MacEager is a MacResult implementation for the common case where you've already built each form of AST that you might return. Fixes #17637. Based on #18814. This is a [breaking-change] for syntax extensions: * MacExpr::new becomes MacEager::expr. * MacPat::new becomes MacEager::pat. * MacItems::new becomes MacEager::items. It takes a SmallVector directly, not an iterator.
2015-02-18rollup merge of #22502: nikomatsakis/deprecate-bracket-bracketAlex Crichton-4/+4
Conflicts: src/libcollections/slice.rs src/libcollections/str.rs src/librustc/middle/lang_items.rs src/librustc_back/rpath.rs src/librustc_typeck/check/regionck.rs src/libstd/ffi/os_str.rs src/libsyntax/diagnostic.rs src/libsyntax/parse/parser.rs src/libsyntax/util/interner.rs src/test/run-pass/regions-refcell.rs
2015-02-18Replace all uses of `&foo[]` with `&foo[..]` en masse.Niko Matsakis-4/+4
2015-02-18Remove usage of .map(|&foo| foo)Kevin Butler-1/+1
2015-02-18Opt for .cloned() over .map(|x| x.clone()) etc.Kevin Butler-1/+1
2015-02-09Refactor compilation to make it easier to use for toolsNick Cameron-0/+1
2015-02-06Update to last version, remove "[]" as much as possibleGuillaumeGomez-4/+4
2015-02-06Libsyntax has been updatedGuillaumeGomez-5/+4
2015-02-06Replace the get method by the deref one on InternedStringGuillaumeGomez-4/+6
2015-02-05cleanup: replace `as[_mut]_slice()` calls with deref coercionsJorge Aparicio-5/+5
2015-01-21Make diagnostic ordering deterministicAlex Crichton-7/+7
2015-01-20Add some extended errors.Michael Sproul-0/+6
2015-01-20Make fatal errors work with codes, add to typeckBrian Anderson-0/+8
2015-01-20Make error code registration work again. #19624Brian Anderson-0/+7
2015-01-07use slicing sugarJorge Aparicio-6/+6
2015-01-07Replace full slice notation with index callsNick Cameron-3/+3
2015-01-05Stop using macro_escape as an inner attributeKeegan McAllister-2/+0
In preparation for the rename.
2015-01-02More falloutNick Cameron-1/+1
2014-12-21Fallout of std::str stabilizationAlex Crichton-3/+3
2014-12-18librustc: Always parse `macro!()`/`macro![]` as expressions if notPatrick Walton-21/+26
followed by a semicolon. This allows code like `vec![1i, 2, 3].len();` to work. This breaks code that uses macros as statements without putting semicolons after them, such as: fn main() { ... assert!(a == b) assert!(c == d) println(...); } It also breaks code that uses macros as items without semicolons: local_data_key!(foo) fn main() { println("hello world") } Add semicolons to fix this code. Those two examples can be fixed as follows: fn main() { ... assert!(a == b); assert!(c == d); println(...); } local_data_key!(foo); fn main() { println("hello world") } RFC #378. Closes #18635. [breaking-change]
2014-12-13libsyntax: use unboxed closuresJorge Aparicio-4/+8
2014-12-04Modify libsyntax/diagnostics to not be so persnickety. The schemeNiko Matsakis-26/+11
doesn't work in a multi-crate context. We'll need to come up with something better.
2014-11-23std: Add a new top-level thread_local moduleAlex Crichton-20/+12
This commit removes the `std::local_data` module in favor of a new `std::thread_local` module providing thread local storage. The module provides two variants of TLS: one which owns its contents and one which is based on scoped references. Each implementation has pros and cons listed in the documentation. Both flavors have accessors through a function called `with` which yield a reference to a closure provided. Both flavors also panic if a reference cannot be yielded and provide a function to test whether an access would panic or not. This is an implementation of [RFC 461][rfc] and full details can be found in that RFC. This is a breaking change due to the removal of the `std::local_data` module. All users can migrate to the new thread local system like so: thread_local!(static FOO: Rc<RefCell<Option<T>>> = Rc::new(RefCell::new(None))) The old `local_data` module inherently contained the `Rc<RefCell<Option<T>>>` as an implementation detail which must now be explicitly stated by users. [rfc]: https://github.com/rust-lang/rfcs/pull/461 [breaking-change]
2014-11-20Parse and store suffixes on literals.Huon Wilson-1/+1
This adds an optional suffix at the end of a literal token: `"foo"bar`. An actual use of a suffix in a expression (or other literal that the compiler reads) is rejected in the parser. This doesn't switch the handling of numbers to this system, and doesn't outlaw illegal suffixes for them yet.
2014-11-19Switch to an independent enum for `Lit*` subtokens.Huon Wilson-1/+1
2014-11-17Fallout from deprecationAaron Turon-1/+1
This commit handles the fallout from deprecating `_with` and `_equiv` methods.
2014-11-06Fallout from collection conventionsAlexis Beingessner-2/+2
2014-10-31DSTify HashJorge Aparicio-1/+1
- The signature of the `*_equiv` methods of `HashMap` and similar structures have changed, and now require one less level of indirection. Change your code from: ``` hashmap.find_equiv(&"Hello"); hashmap.find_equiv(&&[0u8, 1, 2]); ``` to: ``` hashmap.find_equiv("Hello"); hashmap.find_equiv(&[0u8, 1, 2]); ``` - The generic parameter `T` of the `Hasher::hash<T>` method have become `Sized?`. Downstream code must add `Sized?` to that method in their implementations. For example: ``` impl Hasher<FnvState> for FnvHasher { fn hash<T: Hash<FnvState>>(&self, t: &T) -> u64 { /* .. */ } } ``` must be changed to: ``` impl Hasher<FnvState> for FnvHasher { fn hash<Sized? T: Hash<FnvState>>(&self, t: &T) -> u64 { /* .. */ } // ^^^^^^ } ``` [breaking-change]
2014-10-30rollup merge of #18409 : gamazeps/issue15273Alex Crichton-0/+7
2014-10-29Diagnostic: resolve bare fn in expected closuregamazeps-0/+7
Closes #15273 (I did not find how to get the identifier in the message :/) Also creates the span_help! macro associated with #18126
2014-10-28Use PascalCase for token variantsBrendan Zabarauskas-6/+6
2014-10-26Use standard capitalisation for TokenTree variantsBrendan Zabarauskas-6/+6
2014-10-26Rename TokenTree variants for clarityBrendan Zabarauskas-6/+6
This should be clearer, and fits in better with the `TTNonterminal` variant. Renames: - `TTTok` -> `TTToken` - `TTDelim` -> `TTDelimited` - `TTSeq` -> `TTSequence`
2014-09-19Allow syntax extensions to return multiple items, closes #16723.Florian Hahn-4/+4
This patch replaces `MacItem` with `MacItems`.
2014-09-14syntax: fix fallout from using ptr::P.Eduard Burtescu-2/+2
2014-08-27Implement generalized object and type parameter bounds (Fixes #16462)Niko Matsakis-6/+12
2014-07-19Register new snapshotsAlex Crichton-26/+0