Commit Graph

745 Commits

Author SHA1 Message Date
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
Patrick Walton
c946c87b6f libsyntax: Remove the "by-mutable-ref" obsolete syntax error; it blocks useful function argument patterns. Add a test for the latter. r=brson 2012-11-29 12:06:36 -08:00
Brian Anderson
5a282ec26f core: Convert some records to structs 2012-11-28 21:50:09 -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
42c2c2ab2f Remove parser hack 2012-11-28 14:39:48 -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
Patrick Walton
61cfec3c52 librustc: Parse extern "C" { ... }. r=brson 2012-11-28 11:28:16 -08:00
Patrick Walton
1c348e6e38 librustc: Implement @mut [T] as the new replacement for @[mut T] 2012-11-27 09:23:31 -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
Brian Anderson
81a79603c0 Add a temporary hack to divert the parser to an alternate file 2012-11-26 18:13:54 -08:00
Brian Anderson
58e26243a7 syntax: Add a hack to support the int-template pattern 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
9bed0ddb0e Fix parsing of interpolated paths 2012-11-19 14:00:39 -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
72cc1aca17 Parse file mods from .rs files 2012-11-18 18:09:41 -08:00
Brian Anderson
ddbff6fd2a syntax: Remove cdir_syntax. Unused 2012-11-18 18:09:41 -08:00
Brian Anderson
a41903d234 Remove some unused code from lexer 2012-11-18 15:00:21 -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
Brian Anderson
e621e68c60 Remove unused MultiByteChar.sum field from codemap 2012-11-16 15:52:33 -08:00
Brian Anderson
7c72fd89f1 Add some docs to codemap 2012-11-16 15:15:17 -08:00
Brian Anderson
2af088529f Remove incorrect comment from codemap 2012-11-16 14:55:52 -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
1ac28c36ac Remove unused types from codemap 2012-11-16 14:35:43 -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
2374154ded Stop storing char positions in CodeMap 2012-11-16 14:10:17 -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
8cba337cce Remove CodeMap.lookup_byte_pos 2012-11-15 17:32:14 -08:00
Brian Anderson
d5e35e3e87 Convert CodeMap and FileMap to use &self instead of @self 2012-11-15 15:00:49 -08:00
Brian Anderson
bcccf333ab Add some comments to codemap and lexer 2012-11-15 14:43:31 -08:00
Brian Anderson
4a0f4f5e31 Refactor the lexer to use FilePos types 2012-11-15 14:24:53 -08:00
Brian Anderson
b1dff40bae Create CodeMap.add_filemap 2012-11-14 21:56:58 -08:00
Brian Anderson
3a9ccd53e5 Factor out some position management code in the lexer 2012-11-14 21:56:55 -08:00
Brian Anderson
8069d2f266 Track character and byte positions together in the parser 2012-11-14 16:34:50 -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
ac0fd0ddc9 rustc: fix pp build breakage. 2012-11-13 10:54:10 -08:00
Patrick Walton
db9f8db741 librustc: Implement deriving with a unit return type. r=tjc 2012-11-13 10:37:58 -08:00
Graydon Hoare
c6d0117bf6 rustc: add new token-tree based quasiquoter. 2012-11-13 08:57:31 -08:00
Graydon Hoare
12b212f38c rustc: Remove the case of foo![...] as invocation syntax. foo!(...) and foo!{...} only. 2012-11-13 08:57:31 -08:00
Graydon Hoare
f7960ac549 Revert "m1!{...} is now forbidden. Use m1!(...) instead."
This reverts commit 89bbaff84f.
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
38b9740668 Remove unused get_snippet function from codemap 2012-11-12 18:36:03 -08:00
Brian Anderson
b22f941487 Make it clearer which codemap functions use chars vs. bytes 2012-11-12 18:35:17 -08:00
Brian Anderson
2ec09c4eb9 Objectify the codemap 2012-11-12 18:24:56 -08:00
Brian Anderson
15a5d2ccbf Convert codemap from legacy_exports 2012-11-12 17:26:02 -08:00
Brian Anderson
d115944809 Remove expn_info box typedef from codemap 2012-11-12 17:19:56 -08:00
Brian Anderson
18a825bda0 Reorder codemap decls 2012-11-12 17:14:15 -08:00
Brian Anderson
5b248a6ca8 Remove CodeMap box typedef from codemap 2012-11-12 17:09:52 -08:00
Brian Anderson
385a4668e5 Reformatting in codemap 2012-11-12 16:47:17 -08:00
Brian Anderson
9fc75e8d66 Move codemap doc comments to the proper place 2012-11-12 16:45:24 -08:00
Brian Anderson
1f3303163c Move filemap ctors to static methods 2012-11-12 16:44:53 -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
fe02814a63 rustc: Implement floating point literal inference. r=nmatsakis 2012-11-12 10:39:08 -08:00
Patrick Walton
0fc952372a rustc: Support irrefutable patterns in function arguments. r=nmatsakis 2012-11-07 19:29:30 -08:00
Niko Matsakis
b0ed151539 Cleanup how we handle proto in types, remove unsound subtyping
Fixes #1896 which was never truly fixed, just masked.
The given tests would have failed had they used `~fn()` and
not `@fn()`.  They now result in compilation errors.

Fixes #2978.

Necessary first step for #2202, #2263.
2012-11-06 08:56:29 -08:00
Patrick Walton
be93b29d30 rustc: Implement parsing and typechecking for "once fn" 2012-11-05 13:17:02 -08:00
Tim Chevalier
a006608276 Remove stage0 stuff that was awaiting snapshot
and re-register snapshots

Just removing unneeded code, no review
2012-11-03 14:04:32 -07:00
Brian Anderson
762101b72a syntax: Fold macros in default methods. Closes #3911 2012-11-02 23:11:36 -07: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
3edccc311e Support #[cfg] on methods 2012-11-01 15:48:50 -07:00
Tim Chevalier
4e5865f2ad Fix #1458 (allow paren'd exprs to be the operator in a do)
Closes #1458
2012-10-30 15:06:13 -07:00
Tim Chevalier
62f98c8ff8 Preserve parenthesization in the AST
Maintain explicit "paren" nodes in the AST so we can pretty-print
without having to guess where parens should go. We may revisit this
in the future.

r=graydon
2012-10-30 15:05:32 -07:00
Patrick Walton
d5a27a0e0c rustc: Translate monomorphic intra-crate automatically-derived methods that follow the "eq" format 2012-10-26 18:23:45 -07:00
Patrick Walton
c7ec183b34 libsyntax: Fix pretty printing of tuple structs. Attempt to put out fire. rs=rustbot 2012-10-26 12:11:40 -07:00
Patrick Walton
93a0763d53 libsyntax: Don't write a ctor ID for struct-like enum variants. rs=rustbot 2012-10-25 14:20:09 -07:00
Brian Anderson
a9d7642b5d Merge remote-tracking branch '14427/incoming'
Conflicts:
	src/libstd/sort.rs
2012-10-25 14:01:49 -07:00
Patrick Walton
599b4208fb rustc: Translate tuple struct constructors 2012-10-25 11:49:26 -07:00
Brian Anderson
3b6f5a18a2 Merge branch 'method-vis-parse'
Conflicts:
	src/libsyntax/parse/parser.rs
2012-10-24 12:15:21 -07:00
Patrick Walton
4da58a5bd6 rustc: Implement typechecking for tuple structs. r=nmatsakis 2012-10-24 10:54:09 -07:00
Mahmut Bulut
21cbc310c7 Make check & Tidy 2012-10-24 16:51:33 +03:00
Tim Chevalier
087cbb55d0 Remove <- operator from the compiler
Yield an obsolete syntax error on things like "let foo <- bar;"
and "foo <- bar;" r=brson

Progress on #3466
2012-10-23 12:10:19 -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
Mahmut Bulut
2985b8e552 * Parsing sequence changed
1- visibility parse
2- purity parse
2012-10-23 09:42:30 +03:00
Simon BD
cc0f2c6bb2 Merge remote-tracking branch 'original/incoming' into incoming 2012-10-22 18:33:41 -05:00
Tim Chevalier
dd66e7549b Preliminary support for labeled break/continue for loops
This patch adds preliminary middle-end support (liveness and trans)
for breaks and `loop`s to `loop` constructs that have labels.

while and for loops can't have labels yet.

Progress on #2216
2012-10-22 09:20:37 -07: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
Brian Anderson
f3df50f67f Parse and report obsolete fixed-length vector syntax 2012-10-20 17:50:46 -07:00
Ben Striegel
41c37d9d0f ...missed a merge marker on that last rebase 2012-10-20 17:50:46 -07:00
Ben Striegel
614624a34c No longer parse old fixed-length vec sytnax 2012-10-20 17:50:46 -07:00
Ben Striegel
ac81fff229 Remove old fixed-length vector syntax 2012-10-20 17:50:46 -07:00
Philipp Brüschweiler
4174688dd4 libsyntax: adapt the pretty printer for the new fixed size array syntax
`[int]/5` -> `[int * 5]`
2012-10-20 17:50:46 -07:00
Patrick Walton
754704ea94 rustc: Implement intra-crate static methods on anonymous trait implementations. r=nmatsakis 2012-10-18 14:29:18 -07:00
Tim Chevalier
b03c71f629 Remove dead type definition 2012-10-18 12:19:43 -07:00
Erick Tryzelaar
a7ecde3323 libcore: minor code cleanup.
This is minor and probably completely inconsequential to performance,
but I find vec::map to be more clear than vec::each and a push.
2012-10-18 10:09:57 -07:00
Philipp Brüschweiler
e7e1bab27f libsyntax: refactor the parser to consider foreign items as items
parse_item_or_view_item() would drop visibility if none of the conditions
following it would hold. This was the case when parsing extern {} blocks,
where the function was only used to parse view items, but discarded the
visibility of the first not-view item.
2012-10-17 15:34:55 -07:00
Tim Chevalier
b532a8e585 Line length 2012-10-17 12:03:18 -07:00
Tim Chevalier
7236472e67 word => word_space 2012-10-17 12:03:18 -07:00
Jyun-Yan You
66151d02f5 remove duplicate visibility and fix indentation 2012-10-17 12:03:18 -07:00
Jyun-Yan You
ca5506a5de fix the indentation of foreign constant 2012-10-17 12:03:18 -07:00
Patrick Walton
91ae5412d8 rustc: Merge module and type namespaces. r=brson 2012-10-15 15:35:36 -07:00
Tim Chevalier
7237268b70 Allow enum discriminator exprs to refer to declared consts
Also some work towards #3521

Closes #2428
2012-10-15 12:28:29 -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
Niko Matsakis
98887cc7ee remove ctor from ast (take 2) (no review: just dead code removal) 2012-10-12 19:46:37 -07:00
Niko Matsakis
cb55e246ba Use the Nth impl when translating a static method call, instead
of the 0th.  0th is only correct when there are no bound tps
on the trait.

Fixes #3741.
2012-10-12 17:46:43 -07:00
Graydon Hoare
57b4d10ff6 bump version to 0.5. 2012-10-12 16:41:32 -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
ec6311211f Update FIXME number 2012-10-11 16:00:30 -07:00
Tim Chevalier
6854265161 Remove comment that is now false 2012-10-11 16:00:30 -07:00
Tim Chevalier
bfbb7197d7 Update FIXME numbers 2012-10-11 16:00:30 -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
15d8457104 Merge pull request #3700 from erickt/cargo-interner
allow interner cache to be shared across parsers (#3699)
2012-10-09 14:50:01 -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
1ac75d2269 allow interner cache to be shared across parsers (#3699) 2012-10-08 10:42:13 -07:00
Niko Matsakis
ed3689d57c remove ctor from ast 2012-10-08 06:36:42 -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
f96a2a2ca1 Remove by-mutable-ref mode from the compiler
and test cases. Closes #3513
2012-10-05 22:45:50 -07:00
Tim Chevalier
05999290e2 Finally removing all uses of by-mut-ref
The code for the mode itself is still there.
2012-10-05 21:03:40 -07:00
Tim Chevalier
45345bda6a Remove uses of mutable ref mode.
It's still in the compiler right now, but warned about
2012-10-05 16:57:37 -07:00
Tim Chevalier
f8bc0d2545 Revert "wip"
This reverts commit ca49fd402a.
2012-10-05 16:10:08 -07:00
Tim Chevalier
ca49fd402a wip 2012-10-05 15:39:12 -07:00
Tim Chevalier
e16dbb7888 Demode some code using by-mutbl-ref; warn about by-mutbl-ref
The parser now warns about use of mutbl-ref mode, though it's kind
of a lie since this commit doesn't remove support for the mode.

Changed move_val_init to have stage0 and stage1/2 versions, the latter of
which is demoded.

Changed the type that the typechecker expects the move_val_init
intrinsic to have. After this is pushed, I can make a new snapshot,
which will remove the need for the stage0 versions.
2012-10-05 15:37:01 -07: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
Patrick Walton
2f451a7bd7 rustc: Only allow imports marked with "pub" to be imported from other modules 2012-10-02 18:15:19 -07:00
Patrick Walton
9284179311 libstd: Switch off legacy modes in both core and std. 2012-10-02 12:20:06 -07: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
Brian Anderson
c9fb1b19aa Add allow(deprecated_\*) to syntax, rustc, rustdoc, et al 2012-09-28 18:38:59 -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