Commit Graph

708 Commits

Author SHA1 Message Date
Paul Stansifer
7051d622c0 Properly sync macro_parser.rs after it escapes out to the Rust parser. Closes #3201. 2012-11-29 12:09:11 -08:00
Paul Stansifer
9ff8d18766 Fix trace_macros so that it works. 2012-11-29 12:09:11 -08:00
Paul Stansifer
15e03e1e5e Forbid attrs on macros, since we don't handle them properly yet. 2012-11-29 12:09:11 -08:00
Paul Stansifer
6174a30d7c Respect semicolons always when expanding statments. 2012-11-29 12:09:11 -08:00
Paul Stansifer
45bcb10204 Forbid item macros from occuring where statement macros might occur, and allow item macros to look like statement/expr macros. 2012-11-29 12:09:10 -08:00
Paul Stansifer
0f707f42c8 Distinguish stmt_macs that are followed by semicolons and those that aren't. 2012-11-29 12:09:10 -08:00
Paul Stansifer
e77491bd87 Make the parser handle stmt macros that might be exprs at the end of blocks. 2012-11-29 12:09:10 -08:00
Paul Stansifer
bd92499c5e Allow parsing of macros in statement position. 2012-11-29 12:09:10 -08:00
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
ee076f63f9 Allow for macros to occur in statement position. 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
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