about summary refs log tree commit diff
path: root/src/libsyntax/ast.rs
AgeCommit message (Collapse)AuthorLines
2013-05-23core: remove iter_bytes helper functionsErick Tryzelaar-6/+16
2013-05-22librustc: Change `std` to `extra` throughout libsyntax and librustcPatrick Walton-5/+5
2013-05-22libextra: Rename the actual metadata names of libcore to libstd and libstd ↵Patrick Walton-0/+2
to libextra
2013-05-20getting rid of interner_key! macroJohn Clements-18/+6
2013-05-20hygiene infrastructure.John Clements-3/+11
- added a hash table to memoize rename and mark operations. - added rename, mark, and resolve fold fns
2013-05-19Register snapshotsBrian Anderson-108/+0
2013-05-16Add BuiltinBounds to closure type: parse and handle subtyping,Niko Matsakis-1/+2
but do not integrate with kindck etc (requires a snapshot first)
2013-05-16syntax: deprecate #[auto_{en,de}code] in favour of #[deriving({En,De}codable)].Huon Wilson-234/+78
Replace all instances of #[auto_*code] with the appropriate #[deriving] attribute and remove the majority of the actual code, leaving stubs to refer the user to the new syntax.
2013-05-14auto merge of #6224 : erickt/rust/rustc-cleanup, r=ericktbors-4/+45
Just a couple minor cleanups and renames of librustc
2013-05-14rustc: rename ast::self_ty and related fields to explicit_selfErick Tryzelaar-6/+6
2013-05-14syntax: add IterBytes impls for some ast typesErick Tryzelaar-0/+41
2013-05-14Add inlining for iter_bytes for types used as hashmap keysBjörn Steinbrink-0/+2
Not inlining these affects the hash table performance quite badly.
2013-05-14Use static string with fail!() and remove fail!(fmt!())Björn Steinbrink-2/+2
fail!() used to require owned strings but can handle static strings now. Also, it can pass its arguments to fmt!() on its own, no need for the caller to call fmt!() itself.
2013-05-12librustc: Make `self` and `static` into keywordsPatrick Walton-0/+3
2013-05-11clean up the last bit of warningsCorey Richardson-1/+0
2013-05-10Remove the '<->' operator from the languageAlex Crichton-1/+0
2013-05-10auto merge of #6223 : alexcrichton/rust/issue-6183, r=pcwaltonbors-0/+83
Closes #6183. The first commit changes the compiler's method of treating a `for` loop, and all the remaining commits are just dealing with the fallout. The biggest fallout was the `IterBytes` trait, although it's really a whole lot nicer now because all of the `iter_bytes_XX` methods are just and-ed together. Sadly there was a huge amount of stuff that's `cfg(stage0)` gated, but whoever lands the next snapshot is going to have a lot of fun deleting all this code!
2013-05-10auto merge of #6329 : sonwow/rust/issue-6306, r=ILyoanbors-2/+2
Fix for #6306
2013-05-10syntax: Use the new `for` protocolAlex Crichton-0/+83
2013-05-10Move core::task::local_data to core::local_dataYoungsoo Son-2/+2
2013-05-09Use a specialized string interner to reduce the need for owned stringsBjörn Steinbrink-1/+1
&str can be turned into @~str on demand, using to_owned(), so for strings, we can create a specialized interner that accepts &str for intern() and find() but stores and returns @~str.
2013-05-08librustc: Remove mutable fields from the language.Patrick Walton-12/+25
They're still parsed though, to get through bootstrapping.
2013-05-04Register snapshotsBrian Anderson-31/+0
2013-05-02librustc: Update the serializer to work properly with INHTWAMA, removing ↵Patrick Walton-3/+35
mutable fields in the process
2013-05-02Remove 'Local Variable' commentsBrendan Zabarauskas-9/+0
2013-05-01auto merge of #6148 : erickt/rust/remove-drop, r=pcwaltonbors-17/+2
The drop block has been deprecated for quite some time. This patch series removes support for parsing it and all the related machinery that made drop work. As a side feature of all this, I also added the ability to annote fields in structs. This allows comments to be properly associated with an individual field. However, I didn't update `rustdoc` to integrate these comment blocks into the documentation it generates.
2013-05-01allow parsing attributes on struct fieldsErick Tryzelaar-0/+1
2013-05-01rustc: remove the rest of dropErick Tryzelaar-17/+1
Removes: ast::struct_def::dtor syntax::ast::ii_dtor syntax::visit::fk_dtor syntax::ast_map::node_dtor syntax:struct_dtor
2013-05-01Revert rename of Div to QuotBrendan Zabarauskas-1/+1
2013-04-29librustc: Remove the concept of modes from the compiler.Patrick Walton-39/+1
This commit does not remove `ty::arg`, although that should be possible to do now.
2013-04-22librustc: Remove `use mod` from the languagePatrick Walton-6/+1
2013-04-22Rename Div operator trait to Quot and Modulo operator trait to RemBrendan Zabarauskas-1/+1
2013-04-19syntax: de-mode and prepare for de-modeing rustcAlex Crichton-14/+14
2013-04-16added MTWT functionsJohn Clements-25/+99
2013-04-16move interner_key macroJohn Clements-8/+0
2013-04-12auto merge of #5827 : ↵bors-9/+0
nikomatsakis/rust/issue-5656-change-meaning-of-borrowed-self, r=pcwalton See #5656 for details. r? @pcwalton
2013-04-10Issue #5656: Make &self not mean "&'self self"Niko Matsakis-9/+0
Fixes #5656. Fixes #5541.
2013-04-10path -> PathJohn Clements-12/+12
2013-04-05Refactor so that references to traits are not represented using a type with aNiko Matsakis-1/+1
bare function store (which is not in fact a kind of value) but rather ty::TraitRef. Removes many uses of fail!() and other telltale signs of type-semantic mismatch. cc #4183 (not a fix, but related)
2013-04-05Compute a ty::method for methods that appear in impls as wellNiko Matsakis-0/+9
2013-04-05Rather than storing a list of ty::method per trait, store one ty::methodNiko Matsakis-0/+1
per method and list of def-ids per trait.
2013-03-31Fix warningsBrian Anderson-1/+1
2013-03-30auto merge of #5630 : erickt/rust/serial, r=ericktbors-2/+2
@nikomatsakis and I were talking about how the serializers were a bit too complicated. None of the users of With the `emit_option` and `read_option` functions, the serializers are now moving more high level. This patch series continues that trend. I've removed support for emitting specific string and vec types, and added support for emitting mapping types.
2013-03-29Add AbiSet and integrate it into the AST.Niko Matsakis-35/+6
I believe this patch incorporates all expected syntax changes from extern function reform (#3678). You can now write things like: extern "<abi>" fn foo(s: S) -> T { ... } extern "<abi>" mod { ... } extern "<abi>" fn(S) -> T The ABI for foreign functions is taken from this syntax (rather than from an annotation). We support the full ABI specification I described on the mailing list. The correct ABI is chosen based on the target architecture. Calls by pointer to C functions are not yet supported, and the Rust type of crust fns is still *u8.
2013-03-29Merge remote-tracking branch 'remotes/origin/incoming' into serialErick Tryzelaar-1/+1
2013-03-29std: remove Encoder::emit_{owned,managed}_str and ↵Erick Tryzelaar-2/+2
Decoder::read_{owned,managed}_str
2013-03-28Removing unused importsAlex Crichton-1/+1
2013-03-28auto merge of #5593 : luqmana/rust/inline-asm, r=catamorphismbors-4/+22
Clean things up a bit. Also, allow selecting intel syntax in addition to the default AT&T dialect.
2013-03-28librustc: Remove common fields and nested enums from the languagePatrick Walton-2/+0
2013-03-27auto merge of #5578 : erickt/rust/incoming, r=jbclements,ericktbors-8/+1
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.