Paul Stansifer
9814e58815
No longer parse the delimiters of the RHS of a macro as part of the expansion.
2012-11-29 12:09:10 -08:00
Paul Stansifer
ba354b1726
Allow the expansion of old-style expr macros in stmt position.
2012-11-29 12:09:10 -08:00
Paul Stansifer
b7fcc9b52e
Use biased_match!
to avoid over-deep indentation in expand.rs.
2012-11-29 12:09:10 -08:00
Paul Stansifer
cf26a7d7b9
Make it possible to expand stmt macros.
2012-11-29 12:09:10 -08:00
Paul Stansifer
fca52554e7
Make it possible to invoke item macros without passing identifier arguments.
2012-11-29 12:09:10 -08:00
Paul Stansifer
cafea5ecb6
Grammaticalinate an error message.
2012-11-29 12:09:10 -08:00
Paul Stansifer
9845a4be5a
Allow macro_rules!
macros to expand to expressions or items.
2012-11-29 12:09:10 -08:00
Brian Anderson
65bd40e300
Remove uses of #[merge]
2012-11-28 17:09:26 -08:00
Brian Anderson
16f72df704
Merge remote-tracking branch 'erickt/time'
...
Conflicts:
src/libstd/time.rs
2012-11-28 14:49:58 -08:00
Brian Anderson
fc06114ddf
Merge remote-tracking branch 'brson/companion' into incoming
...
Conflicts:
src/compiletest/compiletest.rs
src/libcargo/cargo.rs
src/libcore/core.rs
src/librustc/rustc.rs
src/librustdoc/rustdoc.rc
2012-11-28 13:17:33 -08:00
Brian Anderson
8179e268ef
Register snapshots
2012-11-28 12:33:00 -08:00
Patrick Walton
669fbddc44
librustc: Add explicit self to IterBytes. r=nmatsakis
2012-11-28 11:36:04 -08:00
Patrick Walton
07f4031bb4
libsyntax: Implement a macro die!
to replace the fail
expression. r=brson
2012-11-28 11:28:56 -08:00
Erick Tryzelaar
32763caa60
auto_serialize should use explicit refs ( fixes #4044 )
2012-11-26 22:31:48 -08:00
Brian Anderson
be6613e048
Remove the crate language
2012-11-26 18:13:54 -08:00
Patrick Walton
e6d87a3ef4
libsyntax: Implement deriving
correctly for type-parameterized structs and enums. r=brson
2012-11-21 10:27:37 -08:00
Patrick Walton
57588edf3b
libsyntax: Implement deriving via a syntax extension for the IterBytes
trait. r=brson
2012-11-21 10:27:34 -08:00
Patrick Walton
b053f0b5e6
libsyntax: Fix duplication of items that occurs if #[deriving_eq]
is applied to a non-enum/non-struct. r=brson
2012-11-21 10:27:30 -08:00
Patrick Walton
e0876fdfc1
libsyntax: Implement deriving
for enums with N-ary variants. r=brson
2012-11-21 10:27:13 -08:00
Graydon Hoare
497a8b54b5
syntax: switch tt quoter to emit ~[tt], not tt.
2012-11-20 16:08:05 -08:00
Patrick Walton
ba01cd7fb0
libsyntax: Long line. rs=make-tidy
2012-11-20 11:59:20 -08:00
Patrick Walton
a7aecc46a5
rustc: Implement "deriving" for monomorphic structs via a syntax extension. r=brson
2012-11-20 11:58:19 -08:00
Patrick Walton
318e534895
rustc: Implement explicit self for Eq and Ord. r=graydon
2012-11-19 15:33:11 -08:00
Brian Anderson
371be3c6c4
Remove unused file_type enum from the parser
2012-11-18 18:09:41 -08:00
Brian Anderson
74b2e99797
Report errors better when failing to open files for sub-parsers
2012-11-18 18:09:41 -08:00
Brian Anderson
1a1e99c27d
Merge remote-tracking branch 'brson/codemap'
...
Conflicts:
src/libsyntax/ext/source_util.rs
2012-11-17 18:38:39 -08:00
Graydon Hoare
5005be67cc
syntax: rename quote! to quote_tokens!, add quote_{expr,type,item,pat,stmt}!
...
r=brson, Close #3976 .
2012-11-16 14:50:49 -08:00
Brian Anderson
4a5b28ff0c
Stop tracking CodeMap offsets in the parse session. Big simplification
2012-11-16 14:22:09 -08:00
Brian Anderson
81d20156cd
Change spans to use byte offsets instead of char offsets
2012-11-16 12:06:44 -08:00
Brian Anderson
4a0f4f5e31
Refactor the lexer to use FilePos types
2012-11-15 14:24:53 -08:00
Brian Anderson
f67bfe9738
Add types for character position and byte position in the codemap
2012-11-14 15:18:29 -08:00
Brian Anderson
9ecf86343a
Camel case all the codemap types except span
2012-11-14 15:18:26 -08:00
Patrick Walton
32ad4ae4cd
librustc: Require the #[derivable] attribute, remove the significance of "impl Foo : Bar;", and allow only a subset of methods in a trait to be derived. r=brson
2012-11-14 11:36:55 -08:00
Graydon Hoare
c6d0117bf6
rustc: add new token-tree based quasiquoter.
2012-11-13 08:57:31 -08:00
Graydon Hoare
4e1ce014c8
cleanup: convert some remaining #foo invocations to foo! form.
2012-11-13 08:57:31 -08:00
Brian Anderson
2ec09c4eb9
Objectify the codemap
2012-11-12 18:24:56 -08:00
Brian Anderson
d115944809
Remove expn_info box typedef from codemap
2012-11-12 17:19:56 -08:00
Brian Anderson
5b248a6ca8
Remove CodeMap box typedef from codemap
2012-11-12 17:09:52 -08:00
Brian Anderson
5f881b48cb
Remove filemap box typedef from codemap
2012-11-12 16:41:20 -08:00
Brian Anderson
4c68084963
Convert most codemap types from records to structs
2012-11-12 16:21:39 -08:00
Patrick Walton
0fc952372a
rustc: Support irrefutable patterns in function arguments. r=nmatsakis
2012-11-07 19:29:30 -08:00
Tim Chevalier
4876eb708c
Fix #1996 (pending snapshot)
...
Change int to uint in some extfmt code. Remove the #[cfg(stage0)] code
after a snapshot.
2012-11-02 12:01:38 -07:00
Brian Anderson
a9d7642b5d
Merge remote-tracking branch '14427/incoming'
...
Conflicts:
src/libstd/sort.rs
2012-10-25 14:01:49 -07:00
Tim Chevalier
48c8d1fecd
Remove uses of binary move in the compiler
2012-10-23 12:10:04 -07:00
Tim Chevalier
46fef3d601
Don't generate move-by-init in AST builder
2012-10-23 12:10:04 -07:00
Patrick Walton
3bf0a9b094
rustc: Implement typechecking for simple monomorphic derivable traits on monomorphic types. r=brson
2012-10-23 10:45:23 -07:00
Simon BD
cc0f2c6bb2
Merge remote-tracking branch 'original/incoming' into incoming
2012-10-22 18:33:41 -05:00
Tim Chevalier
46d4bbbae4
Simplify the AST representation of ty param bounds
...
Change ast::ty_param_bound so that all ty param bounds are represented
as traits, with no special cases for Copy/Send/Owned/Const.
typeck::collect generates the special cases.
A consequence of this is that code using the #[no_core] attribute
can't use the Copy kind/trait. Probably not a big deal?
As a side effect, any user-defined traits that happen to be called
Copy, etc. in the same module override the built-in Copy trait.
r=nmatsakis
Closes #2284
2012-10-22 09:01:12 -07:00
Patrick Walton
91ae5412d8
rustc: Merge module and type namespaces. r=brson
2012-10-15 15:35:36 -07:00
Erick Tryzelaar
ab89b5c294
libstd: make Serializer a trait-level typaram
2012-10-15 08:25:23 -07:00
Tim Chevalier
c5fa613498
Make moves explicit in libsyntax
2012-10-12 20:43:37 -07:00
Tim Chevalier
335e5ca33b
Add a colon, make an error message clearer
2012-10-12 20:43:37 -07:00
Kevin Cantu
1bede1f5e0
Replace several common macros of the form #m[...] with m!(...)
...
This commit replaces nearly all remaining uses of #fmt, #debug, #error,
and #info, and fixes some error messages...
2012-10-12 14:14:48 -07:00
Tim Chevalier
5a8ba073bc
Make to_str pure and fix const parameters for str-mutating functions
...
Two separate changes that got intertwined (sorry):
Make to_str pure. Closes #3691
In str, change functions like push_char to take an &mut str instead of
an &str. Closes #3710
2012-10-11 14:17:59 -07:00
Tim Chevalier
22efa39382
Revert "Revert "Remove old auto_serialize2 code (needs snapshot)""
...
This reverts commit a33535e441
.
2012-10-08 17:43:45 -07:00
Tim Chevalier
a33535e441
Revert "Remove old auto_serialize2 code (needs snapshot)"
...
This reverts commit 0bd6da8a8c
.
2012-10-08 11:58:54 -07:00
Erick Tryzelaar
0bd6da8a8c
Remove old auto_serialize2 code (needs snapshot)
2012-10-07 17:20:19 -07:00
Erick Tryzelaar
eb626e7119
Remove the old serializers (needs snapshot)
2012-10-07 17:20:19 -07:00
Erick Tryzelaar
d301dd3686
remove the old auto_serialize syntax extension
2012-10-07 14:56:18 -07:00
Erick Tryzelaar
e1c517ca48
migrate libsyntax/rustc to auto_serialize2
2012-10-07 10:32:25 -07:00
Simon BD
0e3bec0ced
Merge remote-tracking branch 'original/incoming' into incoming
2012-10-06 13:15:18 -05:00
Tim Chevalier
8fc60af441
Remove by-copy mode from std, mostly
...
One instance remains in net_tcp due to a foreign fn. Lots of
instances remain in serialization.rs, but IIRC that is being removed.
I had to do unholy things to task-perf-word-count-generic to get it
to compile after demoding pipes. I may well have messed up its
performance, but it passes.
2012-10-04 19:59:47 -07:00
Simon BD
efcd2385ea
Merge remote-tracking branch 'original/incoming' into incoming
...
Conflicts:
src/libstd/json.rs
src/libstd/sort.rs
2012-10-03 21:47:09 -05:00
Erick Tryzelaar
2569adc5ea
Split auto_serialize2 into two macros
2012-10-01 20:44:30 -07:00
Erick Tryzelaar
4f4160ee3b
Factor out auto_serialize2's impls from each other.
2012-10-01 20:44:30 -07:00
Erick Tryzelaar
c46b6f9efb
auto_serialize2 should deserialize structs using read_struct
2012-10-01 20:44:30 -07:00
Erick Tryzelaar
81423a3866
Add deserializable and more types to serialization2
2012-10-01 20:43:59 -07:00
Tim Chevalier
b18320446e
Move over to calling ptr::addr_of
...
Everything should now call ptr::addr_of instead of
ptr::p2::addr_of. Only the pipes macro code when compiled
by stage0 will call ptr::p2::addr_of. Needs a snapshot to get
rid of that.
2012-10-01 15:12:09 -07:00
Tim Chevalier
72ae42627b
Call 'new' instead of 'old' extfmt code, preparing for snapshot
2012-10-01 15:12:09 -07:00
Tim Chevalier
3639d38d5c
Add a demoded version of ptr::addr_of
...
Currently, the new version is ptr::p2::addr_of and the old one is
ptr::addr_of. This is kind of cheesy, but I need a snapshot before I
can ditch the old version, since the pipe compiler generates calls to
addr_of.
core is converted over to use the new version, std is not.
2012-09-28 22:19:01 -07:00
Tim Chevalier
fec96b2ae0
Demoding in iter: any, all, map_to_vec, flat_map_to_vec, filter_to_vec
2012-09-28 17:44:15 -07:00
Niko Matsakis
565b39b302
rename iter2 to each2, make it follow iterator protocol
2012-09-28 16:13:03 -07:00
Tim Chevalier
2f4ee89119
Demode extfmt
...
Needs a snapshot before this can be completed, because I changed
the mode for conv_poly.
2012-09-28 13:47:45 -07:00
Niko Matsakis
21519bc7e0
demode vec
2012-09-28 13:27:45 -07:00
Simon BD
868d10160f
Put function argument last in sort function. Fixes #3265 .
2012-09-27 19:05:13 -05:00
Niko Matsakis
67a8e7128a
Demode vec::push (and convert to method)
2012-09-26 18:02:07 -07:00
Erick Tryzelaar
b96af73159
turn ast::ident into a struct
...
This will help with the auto_serialize2 migration. We have to change
ident from a type alias to uint into a unique type. We need to use
a struct instead of a "enum ident = token::str_num" because structs
support constants, but newtypes do not.
2012-09-26 16:20:24 -07:00
Erick Tryzelaar
c0b9986c8f
libstd: change serialization2 to take &self argument methods
...
Unfortunately this trips over issue (#3585 ), where auto-ref isn't
playing nicely with @T implementations. Most serializers don't
care, but prettyprint2 won't properly display "@" until #3585 is
fixed.
2012-09-26 16:20:24 -07:00
Erick Tryzelaar
cd93441705
auto_serialize2 should fully qualify std::serialization2::deserialize
2012-09-26 16:20:24 -07:00
Erick Tryzelaar
99d84bacc8
libsyntax: remove quasiquoter from auto_serialize2
2012-09-26 16:20:24 -07:00
Erick Tryzelaar
2ba9d2a888
libsyntax: implement auto_serialize2 for enums, records, and structs
2012-09-26 16:20:24 -07:00
Erick Tryzelaar
dd502fc6e4
Allow hashmaps to infer their types
2012-09-26 16:20:24 -07:00
Brian Anderson
afd91f8a56
Register snapshots. Remove redundant Eq impls, Makefile hacks
2012-09-23 23:01:49 -07:00
Brian Anderson
4a78f9b166
core: Demode option
2012-09-23 17:15:00 -07:00
Niko Matsakis
ba3eebd41d
Make it illegal to use modes in a fn signature with providing
...
an explicit variable name. (Step one to changing the defaults)
First step to #3535
2012-09-23 13:30:13 -05:00
Niko Matsakis
3d59ac3a19
De-mode vec::map, vec::eachi, vec::rev_each, vec::rev_eachi
2012-09-21 19:13:55 -07:00
Patrick Walton
d48396c986
libcore: De-mode str
2012-09-21 18:37:06 -07:00
Graydon Hoare
dffe188991
Install new pub/priv/export rules as defaults, old rules accessible under #[legacy_exports];
2012-09-21 18:11:43 -07:00
Brian Anderson
f5be40384f
Revert "syntax: Make attributes sendable for rustdoc's benefit"
...
This reverts commit 90e3665fa7
.
2012-09-20 18:15:39 -07:00
Brian Anderson
90e3665fa7
syntax: Make attributes sendable for rustdoc's benefit
2012-09-20 17:37:21 -07:00
Patrick Walton
9117dcb968
rustc: De-mode all overloaded operators
2012-09-20 09:48:05 -07:00
Niko Matsakis
cfed923600
demode the each() method on vec and other iterables.
2012-09-19 17:03:01 -07:00
Graydon Hoare
1ffd90edbc
Remove redundant hashmap constructor functions.
2012-09-19 15:51:44 -07:00
Niko Matsakis
9cf271fe96
De-mode vec::each() and many of the str iteration routines
...
Note that the method foo.each() is not de-moded, nor the other
vec routines.
2012-09-19 10:52:59 -07:00
Niko Matsakis
8d4928f780
Revert "replace explicit calls to vec::each with vec::each_ref, partially demode str"
...
This reverts commit 1be24f0758
.
Not quite ready.
2012-09-18 21:41:13 -07:00
Niko Matsakis
1be24f0758
replace explicit calls to vec::each with vec::each_ref, partially demode str
2012-09-18 21:31:00 -07:00
Brian Anderson
287114a3b9
Remove some transitional code
2012-09-12 15:09:21 -07:00
Niko Matsakis
5d540de769
fixup mutability of vec::each, make iter_bytes pure
...
also, change DVec() to work with imm vectors rather than mut ones
2012-09-12 13:29:31 -07:00
Tim Chevalier
86e02554fd
Make moves in arguments explicit in libsyntax and rustc
2012-09-12 11:33:40 -07:00
Brian Anderson
320331fe35
Use a different strategy for transitioning to camel case extfmt
2012-09-12 11:22:48 -07:00
Niko Matsakis
8a8f200d10
Introduce auto adjustment table to subsume autoderef/autoref/borrowings.
...
Fixes #3261
Fixes #3443
2012-09-11 21:25:01 -07:00
Brian Anderson
2c6c963f61
Convert core::extfmt to camel case
2012-09-11 19:41:07 -07:00
Brian Anderson
298eb8c726
Convert 'import' to 'use'. Remove 'import' keyword.
2012-09-10 19:04:26 -07:00
Brian Anderson
1a8a0a77b1
Camel case std::serialization
2012-09-10 19:02:57 -07:00
Tim Chevalier
f8b3eaae82
Make all moves explicit in libsyntax
2012-09-10 18:28:47 -07:00
Brian Anderson
cb7a5395dd
Convert std::map to camel case
2012-09-10 17:08:36 -07:00
Brian Anderson
93d3b8aa6b
Convert class methods to impl methods. Stop parsing class methods
2012-09-10 16:13:08 -07:00
Tim Chevalier
1a33c25d6f
Make moves explicit in pipes and pipe compiler
2012-09-10 15:15:10 -07:00
Patrick Walton
22b8757705
rustc: Make shape-based compare glue never called for comparison operators.
...
Only called for string patterns.
2012-09-10 12:48:42 -07:00
Brian Anderson
3bd1f32cd9
Convert all kind bounds to camel case. Remove send, owned keywords.
2012-09-07 18:10:11 -07:00
Brian Anderson
2810ea9a68
Convert 'again' to 'loop'. Remove 'again' keyword
2012-09-07 17:39:03 -07:00
Graydon Hoare
e9f5a099df
Add an ignore! macro, remove support for nested block comments, re: #2755 .
2012-09-07 16:58:36 -07:00
Brian Anderson
f0eae8f1c1
Convert field terminators to commas. Stop parsing semis.
2012-09-07 16:12:15 -07:00
Brian Anderson
2572e80355
Remove 'let' syntax for struct fields
2012-09-07 14:02:33 -07:00
Patrick Walton
feb014eb3c
rustc: Add an "ne" method to the Eq trait, and implement it everywhere
2012-09-07 12:24:48 -07:00
Brian Anderson
b4e547d71a
Remove struct ctors
2012-09-06 10:52:26 -07:00
Brian Anderson
200959d7ce
Remove 'with'
2012-09-04 15:47:04 -07:00
Patrick Walton
8ff18acc82
libsyntax: "import" -> "use"
2012-09-04 11:43:23 -07:00
Patrick Walton
96534365c2
rustc: Make <
and =
into traits
2012-08-29 18:25:22 -07:00
Ben Striegel
a605fd0cad
CamelCasify lots of std
2012-08-28 18:52:44 -07:00
Brian Anderson
cfbc7cbdc7
Convert core::pipes to camel case
2012-08-28 14:33:18 -07:00
Brian Anderson
161a82e433
Camel case various core constructors
2012-08-27 17:22:18 -07:00
Brian Anderson
0c6e470a25
Convert core::result to camel case
2012-08-27 14:37:04 -07:00
Erick Tryzelaar
65bd46c8a5
rustc: more pattern cleanup
2012-08-27 14:10:54 -07:00
Brian Anderson
8337fa1a54
Camel case the option type
2012-08-26 15:56:16 -07:00
Tim Chevalier
5e22fb9c7f
Remove match check
2012-08-24 22:28:12 -07:00
Paul Stansifer
18180fd5da
"earley_parser" -> "macro_parser" Let's be less confusing.
2012-08-24 18:20:17 -07:00
Paul Stansifer
e54acbf848
Document the macro parser a little more.
2012-08-24 18:20:17 -07:00
Graydon Hoare
c284b8b1dc
Start using core::path2::Path in a lot of places.
2012-08-24 15:51:16 -07:00
Niko Matsakis
a8f1bee457
fix some unused pattern binding warnings
2012-08-24 15:37:21 -07:00
Michael Sullivan
0f996f70a6
Remove purity from fn_decl and move it out to containing AST elements.
2012-08-23 19:40:01 -07:00
Niko Matsakis
a08f3a7d4d
More complete fix to #3162 (borrowck bug related to access to rec fields)
2012-08-23 18:54:08 -07:00
Paul Stansifer
77e83d83a9
Change calls of proto!
to use parens.
2012-08-23 11:14:15 -07:00
Paul Stansifer
29f32b4a72
m1!{...}
-> m1!(...)
2012-08-23 11:14:14 -07:00
Paul Stansifer
1153b5dcc8
intern identifiers
2012-08-22 14:59:25 -07:00
Paul Stansifer
9a7890d73a
Centralize ident interner generation.
2012-08-22 14:59:24 -07:00
Eric Holk
7bae3449ce
Move select macro into another file, so it can be including in multiple tests.
...
Fixing long lines.
2012-08-17 12:39:51 -07:00
Eric Holk
9260b02daa
Track spans better in the protocol compiler so we can get better error messages.
2012-08-17 12:39:51 -07:00
Brian Anderson
3ab4b014cf
Remove the class keyword
2012-08-17 10:13:45 -07:00
Patrick Walton
b592d57311
libsyntax: Make include_bin! generate fixed-length vectors.
...
This is so that we don't generate 170,000-line LLVM functions in Servo.
2012-08-16 17:20:08 -07:00
Brian Anderson
913f7bdae7
Modify pipec to not emit calls to some and none
2012-08-15 16:53:41 -07:00
Patrick Walton
fe9d07dda6
rustc: "as Trait" can now be written "as @Trait".
...
There is also code for ~Trait and &Trait, but these are currently (incorrectly)
synonyms for "as @Trait" and "as &Trait".
2012-08-15 16:20:31 -07:00
Brian Anderson
fd0f616ceb
pipes: Rename the pipec-generated buffer to __Buffer
...
Conforms to camel case convention and hides it away so it doesn't conflict
with user code
2012-08-15 15:09:39 -07:00
Brian Anderson
74c69e1053
Convert more core types to camel case
2012-08-15 14:14:20 -07:00
Eric Holk
1e96099918
Add trace_macros!
2012-08-15 11:45:32 -07:00
Tim Chevalier
6d68658b9a
Make autoserialize not generate alt checks
2012-08-14 22:13:25 -07:00
Brian Anderson
11258310e2
Convert more core types to camel case
2012-08-14 18:26:03 -07:00
Graydon Hoare
1d3b5478fa
Silence unused-variable warning.
2012-08-14 12:15:00 -07:00
Brian Anderson
5394e34aa4
core: Camel case some lesser-used modules
2012-08-13 18:59:48 -07:00
Eric Holk
4ec1dd9914
Got the select macro working.
2012-08-13 16:20:23 -07:00