about summary refs log tree commit diff
path: root/src/libsyntax/parse
AgeCommit message (Collapse)AuthorLines
2013-03-27auto merge of #5578 : erickt/rust/incoming, r=jbclements,ericktbors-25/+31
Hey folks, This patch series does some work on the json decoder, specifically with auto decoding of enums. Previously, we would take this code: ``` enum A { B, C(~str, uint) } ``` and would encode a value of this enum to either `["B", []]` or `["C", ["D", 123]]`. I've changed this to `"B"` or `["C", "D", 123]`. This matches the style of the O'Caml json library [json-wheel](http://mjambon.com/json-wheel.html). I've added tests to make sure all this work. In order to make this change, I added passing a `&[&str]` vec to `Decode::emit_enum_variant` so the json decoder can convert the name of a variant into it's position. I also changed the impl of `Encodable` for `Option<T>` to have the right upper casing. I also did some work on the parser, which allows for `fn foo<T: ::cmp::Eq>() { ... }` statements (#5572), fixed the pretty printer properly expanding `debug!("...")` expressions, and removed `ast::expr_vstore_fixed`, which doesn't appear to be used anymore.
2013-03-27derive Eq and Clone impls where applicableAndrew Paseltiner-10/+1
2013-03-27libsyntax: error on struct Foo {}.Luqman Aden-0/+4
2013-03-27librustc: Allow expr_repeat to be used with any vstorePatrick Walton-8/+8
2013-03-27auto merge of #5558 : nikomatsakis/rust/issue-4920-autoref-index-operator, ↵bors-22/+5
r=nikomatsakis Per discussion on IRC. r? @pcwalton
2013-03-27Fix pretty-printer test failure by carrying the bound lifetime names throughNiko Matsakis-1/+2
the types. Initially I thought it would be necessary to thread this data through not only the AST but the types themselves, but then I remembered that the pretty printer only cares about the AST. Regardless, I have elected to leave the changes to the types intact since they will eventually be needed. I left a few FIXMEs where it didn't seem worth finishing up since the code wasn't crucial yet.
2013-03-27syntax: Remove deprecated expr_vstore_fixedErick Tryzelaar-1/+1
2013-03-27syntax: fix pretty printing __log stmtsErick Tryzelaar-1/+1
2013-03-27syntax: Remove dead code from the parserErick Tryzelaar-8/+0
2013-03-27syntax: Fix parsing global generics (Closes #5572)Erick Tryzelaar-2/+3
2013-03-27std: change default json enum encoder to use strings or a flat vecErick Tryzelaar-15/+17
2013-03-27std: Add tests for json decoding optionsErick Tryzelaar-13/+24
2013-03-27Simplify and remove unnecessary use of ast_mapNiko Matsakis-2/+0
2013-03-27remove sty_by_ref, though traces still remain due to dtorsNiko Matsakis-20/+5
2013-03-26librustc: Enforce that `extern mod` directives come first, then `use` ↵Patrick Walton-31/+75
directives, then items. Resolve them in this order as well.
2013-03-26librustc: Modify all code to use new lifetime binder syntaxPatrick Walton-7/+20
2013-03-26librustc: Stop parsing `[T * N]`.Patrick Walton-2/+7
2013-03-26librustc: Remove all uses of the old `[T * N]` fixed-length vector syntaxPatrick Walton-1/+1
2013-03-26libsyntax: Stop parsing `[const T]`.Patrick Walton-1/+1
2013-03-26syntax: Removing uses of HashMapAlex Crichton-40/+38
2013-03-26Switched over a bunch of splitting funktions to non-allocating iteratorsMarvin Löbel-2/+6
2013-03-22libsyntax: Stop parsing old lifetime syntaxPatrick Walton-0/+1
2013-03-22libsyntax: Stop parsing `const`.Patrick Walton-1/+13
2013-03-22librustc: Remove the `const` declaration form everywherePatrick Walton-40/+40
2013-03-22libsyntax: Introduce the new `assert!` macro; make `assert` no longer a keywordPatrick Walton-11/+2
2013-03-22libsyntax: Stop parsing `pure` and `static`Patrick Walton-4/+22
2013-03-22auto merge of #5488 : pcwalton/rust/depure, r=pcwaltonbors-19/+19
2013-03-22librustc: Remove `pure` from libsyntax and librustc.Patrick Walton-19/+19
2013-03-22auto merge of #5483 : pcwalton/rust/static-syntax, r=graydonbors-37/+40
r? @nikomatsakis
2013-03-22syntax: replace uses of old deriving attribute with new oneAndrew Paseltiner-6/+6
2013-03-21auto merge of #5480 : pcwalton/rust/at-const, r=pcwaltonbors-1/+14
r? @catamorphism
2013-03-21auto merge of #5479 : Kimundi/rust/str-dealloc, r=z0w0bors-1/+4
This makes the `trim` and `substr` functions return a slice instead of an `~str`, and removes the unnecessary `Trimmable` trait (`StrSlice` already contains the same functionality). Also moves the `ToStr` implementations for the three str types into the str module in anticipation of further untangling.
2013-03-21librustc: Replace the `&static` bound with `'static`Patrick Walton-37/+40
2013-03-21libsyntax: Remove `@const` from the languagePatrick Walton-1/+13
2013-03-21librustc: Forbid destructors from being attached to any structs that might ↵Patrick Walton-0/+1
contain non-Owned fields. r=nmatsakis
2013-03-21auto merge of #5407 : jbclements/rust/add-assert-eq-macro, r=jbclementsbors-13/+11
Adds an assert_eq! macro that asserts that its two arguments are equal. Error messages can therefore be somewhat more informative than a simple assert, because the error message includes "expected" and "given" values.
2013-03-21Un-renamed trim and substr functions.Marvin Löbel-6/+6
2013-03-21Switched over substr and trim functions in str to be non-allocating, ↵Marvin Löbel-5/+8
temporary renamed them to better track use-sites
2013-03-21back-renamed slice_DBG_BRWD, slice_V_DBG_BRWD -> slice, slice_DBG_UNIQ -> ↵Marvin Löbel-6/+6
slice_unique
2013-03-21renamed str::view -> slice_DBG_BRWDMarvin Löbel-7/+7
renamed str::slice -> slice_DBG_UNIQ changed vec slice method -> to_owned() renamed vec view method -> slice_V_DBG_BRWD
2013-03-20change some uses of fail_unless to assert_eqJohn Clements-13/+11
2013-03-20libsyntax: Never use `::<>` in the type grammarPatrick Walton-2/+4
2013-03-20auto merge of #5443 : alexcrichton/rust/less-bad-copy, r=catamorphismbors-8/+9
Removes a lot of instances of `/*bad*/ copy` throughout libsyntax/librustc. On the plus side, this shaves about 2s off of the runtime when compiling `librustc` with optimizations. Ideally I would have run a profiler to figure out which copies are the most critical to remove, but in reality there was a liberal amount of `git grep`s along with some spot checking and removing the easy ones.
2013-03-19auto merge of #5442 : pcwalton/rust/extern-block-restriction, r=pcwaltonbors-38/+76
r? @graydon
2013-03-20syntax: Removing some bad copiesAlex Crichton-8/+9
2013-03-19libsyntax: Forbid `use` (and most other things) within `extern { ... }` blocksPatrick Walton-32/+54
2013-03-19libsyntax: Accept the new `[T, ..N]` style for vec.Patrick Walton-3/+9
2013-03-19libsyntax: Accept `static` instead of `const` for globalsPatrick Walton-4/+14
2013-03-19auto merge of #5426 : nikomatsakis/rust/issue-4846-lifetimes-in-expl-self, ↵bors-1/+62
r=pcwalton (this will be needed for snapshotting at some point) r? @pcwalton
2013-03-19auto merge of #5433 : lucab/rust/lucab/cfgspec, r=graydonbors-0/+16
All current meta items types (word, name-value, list) are now properly parsed by rustc --cfg command line. Fixes #2399