summary refs log tree commit diff
path: root/src/libsyntax/ext
AgeCommit message (Collapse)AuthorLines
2013-03-31Fix warningsBrian Anderson-2/+2
2013-03-30auto merge of #5630 : erickt/rust/serial, r=ericktbors-27/+13
@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-30syntax: fix auto_encode test.Erick Tryzelaar-4/+4
2013-03-29Add AbiSet and integrate it into the AST.Niko Matsakis-1/+3
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-15/+2
2013-03-29Merge remote-tracking branch 'remotes/origin/incoming' into serialErick Tryzelaar-3/+3
2013-03-29librustc: Remove `fail_unless!`Patrick Walton-15/+2
2013-03-29Merge remote-tracking branch 'remotes/origin/incoming' into serialErick Tryzelaar-41/+20
2013-03-29std: add Encoder::emit_map and Decoder::read_mapErick Tryzelaar-0/+10
2013-03-29std: remove Encoder::read_rec and Decoder::emit_recErick Tryzelaar-3/+0
2013-03-29std: remove Encoder::emit_tup{,_elt} and Decoder::read_tup{,_elt}Erick Tryzelaar-7/+0
2013-03-29std: remove Encoder::emit_{owned,managed}_vec and ↵Erick Tryzelaar-9/+2
Decoder::read_{owned,managed}_vec
2013-03-29std: remove Encoder::emit_{owned,managed} and Decoder::read_{owned,managed}Erick Tryzelaar-4/+0
2013-03-29std: remove Encoder::emit_{owned,managed}_str and ↵Erick Tryzelaar-4/+1
Decoder::read_{owned,managed}_str
2013-03-28Removing unused importsAlex Crichton-41/+20
2013-03-28auto merge of #5593 : luqmana/rust/inline-asm, r=catamorphismbors-3/+13
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-15/+5
2013-03-27auto merge of #5578 : erickt/rust/incoming, r=jbclements,ericktbors-23/+245
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-27libsyntax: Allow selecting intel style asm.Luqman Aden-1/+5
2013-03-27libsyntax: use a struct for inline asm in ast.Luqman Aden-3/+9
2013-03-27syntax: Remove deprecated expr_vstore_fixedErick Tryzelaar-5/+0
2013-03-27std: Decode::read_enum_variant should pass in the variant namesErick Tryzelaar-3/+14
Because the json::Decoder uses the string variant name, we need a way to correlate the string to the enum index. This passes in a static &[&str] to read_enum_variant, which allows the json::Decoder to know which branch it's trying to process.
2013-03-27std: add option type directly to serialize::{En,De}codeErick Tryzelaar-9/+70
2013-03-27syntax: pass some values around by referenceErick Tryzelaar-4/+4
2013-03-27syntax: Add new values that can be used with the quasiquoterErick Tryzelaar-2/+157
2013-03-27remove sty_by_ref, though traces still remain due to dtorsNiko Matsakis-4/+4
2013-03-26librustc: Modify all code to use new lifetime binder syntaxPatrick Walton-10/+12
2013-03-26option: rm functions that duplicate methodsDaniel Micay-3/+1
2013-03-26syntax: Removing uses of HashMapAlex Crichton-14/+18
2013-03-26Remove unused imports throughoutAlex Crichton-6/+2
2013-03-26Rip out old code that still structured method calls as aNiko Matsakis-119/+93
expr_call(expr_field(...)) rather than an expr_method_call. There is probably more such code in trans that should be removed.
2013-03-22librustc: Add explicit lifetime binders and new lifetime notation in ↵Patrick Walton-2/+2
core/std/syntax/rustc
2013-03-22librustc: Remove the `const` declaration form everywherePatrick Walton-1/+1
2013-03-22libsyntax: Introduce the new `assert!` macro; make `assert` no longer a keywordPatrick Walton-0/+13
2013-03-22auto merge of #5488 : pcwalton/rust/depure, r=pcwaltonbors-13/+13
2013-03-22librustc: Remove `pure` from libsyntax and librustc.Patrick Walton-10/+10
2013-03-22librustc: Remove all uses of `static` from functions. rs=destaticPatrick Walton-3/+3
2013-03-22Pass the fmt! buffer to each conversion methodAlex Crichton-58/+59
Achieves a little more speedup and avoids allocations around some strings in conv_str
2013-03-22Build up the result of fmt! in a buffer instead of a vectorAlex Crichton-30/+44
2013-03-22syntax: make old `#[deriving_foo]` attribute obsoleteAndrew Paseltiner-3/+31
2013-03-22syntax: replace uses of old deriving attribute with new oneAndrew Paseltiner-4/+4
2013-03-21auto merge of #5407 : jbclements/rust/add-assert-eq-macro, r=jbclementsbors-18/+25
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-21back-renamed slice_DBG_BRWD, slice_V_DBG_BRWD -> slice, slice_DBG_UNIQ -> ↵Marvin Löbel-1/+1
slice_unique
2013-03-21renamed str::view -> slice_DBG_BRWDMarvin Löbel-1/+1
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-18/+15
2013-03-20add assert_eq! macroJohn Clements-0/+10
the assert_eq! macro compares its arguments and fails if they're not equal. It's more informative than fail_unless!, because it explicitly writes the given and expected arguments on failure.
2013-03-20auto merge of #5434 : apasel422/rust/deriving, r=nikomatsakisbors-1271/+1356
This is the first step in refactoring the deriving code in libsyntax. No code is changed, just rearranged.
2013-03-20syntax: Removing some bad copiesAlex Crichton-7/+7
2013-03-19syntax: split deriving module into submodules for each traitAndrew Paseltiner-977/+1062
2013-03-19auto merge of #5436 : alexcrichton/rust/assert-message, r=pcwaltonbors-0/+5
This would close #2761. I figured that if you're supplying your own custom message, you probably don't mind the stringification of the condition to not be in the message.