Commit graph

16553 commits

Author SHA1 Message Date
bors 84ddff3909 auto merge of #5578 : erickt/rust/incoming, r=jbclements,erickt
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-27 21:51:53 -07:00
bors 4954d3e501 auto merge of #5575 : apasel422/rust/simplify-impls, r=thestinger 2013-03-27 20:27:52 -07:00
Andrew Paseltiner f02ee42a86 derive Eq and Clone impls where applicable 2013-03-27 22:04:23 -04:00
bors 8896336770 auto merge of #5576 : yichoi/rust/pull-0327, r=brson
minor fix
configure: cleanup - parsing supported target triples
2013-03-27 18:54:53 -07:00
bors f7f6013a62 auto merge of #5574 : thestinger/rust/docstring, r=sanxiyn 2013-03-27 17:48:56 -07:00
bors 8c1540985d auto merge of #5594 : brson/rust/freebsd, r=brson
This condition was added for cygwin support but appears to simply turn
off the normalization of CPU types
2013-03-27 16:36:56 -07:00
Brian Anderson 32b8c0eaac Fix cpu type normalization in configure script
This condition was added for cygwin support but appears to simply turn
off the normalization of CPU types
2013-03-27 16:25:49 -07:00
bors 4de9a94407 auto merge of #5567 : jbclements/rust/release-note-macro-escape, r=thestinger 2013-03-27 15:30:58 -07:00
bors 30b1957cd4 auto merge of #5569 : thestinger/rust/map, r=catamorphism 2013-03-27 14:31:03 -07:00
bors 995425badb auto merge of #5558 : nikomatsakis/rust/issue-4920-autoref-index-operator, r=nikomatsakis
Per discussion on IRC.

r? @pcwalton
2013-03-27 13:27:58 -07:00
Niko Matsakis 2a74fda316 Fix pretty-printer test failure by carrying the bound lifetime names through
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-27 11:35:04 -07:00
Graydon Hoare 83aa70d7e3 another pub fn for check-fast 2013-03-27 11:30:38 -07:00
Tim Chevalier fad05591e5 testsuite: more pub fn main 2013-03-27 10:09:03 -07:00
Tim Chevalier e23fad0e6a Oh, cool, I xfailed the wrong test, neat 2013-03-27 10:09:02 -07:00
Tim Chevalier e01cf3caf5 testsuite: Add various test cases
Some are xfailed, some not, some existing ones get un-xfailed.
2013-03-27 10:09:02 -07:00
Niko Matsakis 069529bc5c Autoref the argument to the index operator (#4920) 2013-03-27 13:04:03 -04:00
Patrick Walton b93393e907 test: xfail-pretty one of the run-pass tests. rs=burningtree 2013-03-27 07:35:49 -07:00
Erick Tryzelaar c317d3f6fa std: add some better failure msgs to json 2013-03-27 07:04:17 -07:00
Erick Tryzelaar 83e831bc22 syntax: Remove deprecated expr_vstore_fixed 2013-03-27 07:04:16 -07:00
Erick Tryzelaar 7a199d41a9 syntax: fix pretty printing __log stmts 2013-03-27 07:04:15 -07:00
Erick Tryzelaar 2e0b363a7f syntax: Remove dead code from the parser 2013-03-27 07:04:15 -07:00
Erick Tryzelaar b26ae289d0 syntax: Fix parsing global generics (Closes #5572) 2013-03-27 07:04:14 -07:00
Erick Tryzelaar 4e9a63ff91 std: add tests for decoding json enums 2013-03-27 07:04:14 -07:00
Erick Tryzelaar 4d6dcefcbb std: Decode::read_enum_variant should pass in the variant names
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-27 07:04:13 -07:00
Erick Tryzelaar 478e4498b7 std: add option type directly to serialize::{En,De}code 2013-03-27 07:04:12 -07:00
Erick Tryzelaar 4d995e66a2 std: change default json enum encoder to use strings or a flat vec 2013-03-27 07:04:12 -07:00
Erick Tryzelaar b10b8c3ee4 std: Add tests for json decoding options 2013-03-27 07:04:11 -07:00
Erick Tryzelaar c9188c8301 std: fix json PrettyEncoder and add tests 2013-03-27 07:04:10 -07:00
Erick Tryzelaar 6cf99fa54a std: change fail_unless to assert_eq in json.rs 2013-03-27 07:04:09 -07:00
Erick Tryzelaar 89fc95885f std: serializing Options should use the right case 2013-03-27 07:02:59 -07:00
Erick Tryzelaar b290863be6 std: clean json test imports 2013-03-27 07:01:50 -07:00
Erick Tryzelaar bd77e9433f syntax: pass some values around by reference 2013-03-27 07:01:45 -07:00
Erick Tryzelaar 2f1ab3a7fa syntax: Add new values that can be used with the quasiquoter 2013-03-27 06:49:39 -07:00
Niko Matsakis 2c17ff7dbc Simplify and remove unnecessary use of ast_map 2013-03-27 07:10:04 -04:00
Niko Matsakis aa67deff33 remove sty_by_ref, though traces still remain due to dtors 2013-03-27 07:09:16 -04:00
Daniel Micay 1c6272a267 base64: add docstring 2013-03-27 03:42:03 -04:00
Daniel Micay 9c1bbc586c ops: add a docstring 2013-03-27 03:42:03 -04:00
Daniel Micay 4d3b0a1529 hashmap: improve docstring 2013-03-27 03:42:00 -04:00
Patrick Walton 2888563510 test: Fix botched error message in compile-fail test 2013-03-26 23:31:56 -07:00
Patrick Walton b07b36bbf3 test: Fix tests 2013-03-26 22:45:22 -07:00
Young-il Choi 8fe7fd6dd6 configure: cleanup - parsing supported target triples 2013-03-27 13:35:20 +09:00
Patrick Walton f41a510631 librustc: Remove obsolete syntax 2013-03-26 21:30:18 -07:00
Patrick Walton 0a4d0f37ca librustc: Enforce that extern mod directives come first, then use directives, then items.
Resolve them in this order as well.
2013-03-26 21:30:17 -07:00
Patrick Walton 8b56a8380b librustc: Modify all code to use new lifetime binder syntax 2013-03-26 21:30:17 -07:00
Patrick Walton 15688eaf28 librustc: Require explicit lifetime binders 2013-03-26 21:29:35 -07:00
Patrick Walton 3b2fcf9f59 librustc: Fix bug with newtype structs containing dtors 2013-03-26 21:29:35 -07:00
Patrick Walton a376f46862 librustc: Stop parsing [T * N]. 2013-03-26 21:29:35 -07:00
Patrick Walton 142dbd65da librustc: Remove all uses of the old [T * N] fixed-length vector syntax 2013-03-26 21:29:34 -07:00
Patrick Walton 46d4cc12d1 libsyntax: Stop parsing [const T]. 2013-03-26 21:29:34 -07:00
Patrick Walton 0d52b22e7b libcore: Change [const T] to const [T] everywhere 2013-03-26 21:29:33 -07:00