Commit Graph

564 Commits

Author SHA1 Message Date
Youngsoo Son
4b2aa286d8 Make super a keyword 2013-01-24 16:07:04 +09:00
Patrick Walton
d9c842847d libsyntax: Fix parsing of pub unsafe fn inside extern blocks. rs=bugfix 2013-01-23 15:14:12 -08:00
Patrick Walton
154488df19 libsyntax: Implement assert as a macro (called fail_unless! on a transitionary basis to avoid conflicting with the keyword right now). r=brson 2013-01-23 14:46:24 -08:00
Patrick Walton
54b2cad8b3 libsyntax: Remove fn() unsafe { ... }. r=graydon 2013-01-23 14:41:08 -08:00
Patrick Walton
778aec998b libsyntax: Implement the + syntax for multiple trait bounds. r=tjc 2013-01-23 11:15:10 -08:00
Tim Chevalier
a7eaa1f5e4 syntax: Allow closure args to be mutable 2013-01-22 23:34:34 -08:00
Seo Sanghyeon
4dd29dee57 Parse mut in arguments 2013-01-22 23:34:33 -08:00
Seo Sanghyeon
9a5d617092 Add is_mutbl field to arg 2013-01-22 23:34:33 -08:00
Erick Tryzelaar
d5d77b9351 convert the remaining ast record types into structs
These are: region,arg,fn_decl,method,_mod,foreign_mod,
variant_arg,enum_def_,variant_,trait_ref.
2013-01-20 14:08:18 -08:00
Erick Tryzelaar
5ba7e55a4c convert ast::{ty_field_,ty_method} into a struct 2013-01-20 14:08:18 -08:00
Erick Tryzelaar
8cdc3fda11 convert ast::ty into a struct 2013-01-20 14:08:18 -08:00
Erick Tryzelaar
8a3a1fc148 convert ast::expr into a struct 2013-01-20 14:08:18 -08:00
Patrick Walton
f405e41d7a librustc: Implement write guards for borrowing @mut to & or &mut. r=nmatsakis 2013-01-17 11:50:20 -08:00
Erick Tryzelaar
293cd3480c convert ast::{field_,capture_item_,mt} and middle::ty::mt into structs 2013-01-14 21:36:27 -08:00
Erick Tryzelaar
4bcd19f6be Convert ast::{pat,field_pat,local_,arm} into structs 2013-01-14 20:52:28 -08:00
Erick Tryzelaar
3ea3136e84 convert ast::blk_ into a struct 2013-01-14 19:35:08 -08:00
Erick Tryzelaar
0b9e23146b convert ast::crate_ into a struct. 2013-01-14 19:06:59 -08:00
Erick Tryzelaar
eb8fd119c6 convert ast::pat_list_ident_ to a struct 2013-01-14 18:15:54 -08:00
Erick Tryzelaar
4b0f702608 convert ast::attribute_ and ast::view_item to a struct 2013-01-14 18:15:54 -08:00
Erick Tryzelaar
eafed93d72 convert ast::struct_field_ into a struct 2013-01-14 18:15:54 -08:00
Erick Tryzelaar
1f5e9ff362 convert ast::struct_def to a struct 2013-01-14 18:15:54 -08:00
Erick Tryzelaar
530a113bfa convert ast::item into a struct 2013-01-14 18:15:53 -08:00
Erick Tryzelaar
ebea895d02 convert ast::struct_dtor_ into a struct 2013-01-14 18:14:17 -08:00
Erick Tryzelaar
5c0d674a45 convert ast::foreign_item to a struct 2013-01-14 18:14:16 -08:00
Erick Tryzelaar
e1f1a1204a change ast::ty_param into a struct. 2013-01-14 18:14:16 -08:00
Erick Tryzelaar
bea67bde21 Change ast::path into a struct. 2013-01-14 18:14:16 -08:00
Patrick Walton
2a1b6c4de9 librustc: Implement &static as the replacement for Durable. r=nmatsakis 2013-01-10 11:16:54 -08:00
Patrick Walton
982830c836 librustc: Allow the type parameter version of Self to be spelled with a capital S 2013-01-10 10:37:22 -08:00
Erick Tryzelaar
93c2ebf994 syntax: convert ast::spanned into a struct 2013-01-09 08:55:36 -08:00
Patrick Walton
2db3abddcd librustc: Make unqualified identifier searches terminate at the nearest module scope. r=tjc 2013-01-08 22:02:35 -08:00
Patrick Walton
44ab00ee37 Revert "librustc: Make unqualified identifier searches terminate at the nearest module scope. r=tjc"
This reverts commit a8d37af247.
2013-01-08 19:29:16 -08:00
Patrick Walton
a8d37af247 librustc: Make unqualified identifier searches terminate at the nearest module scope. r=tjc 2013-01-08 19:27:57 -08:00
Lindsey Kuper
816cb8c535 Rename identifiers that still use 'alt' to use 'match'
This'll be less confusing for anyone who works on match in future.
2013-01-08 14:31:58 -05:00
Tim Chevalier
89acd1f57f Rename option::get_default => get_or_default, get_zero => get_or_zero 2013-01-04 16:01:26 -08:00
Patrick Walton
57c599914a librustc: Terminate name searches at the nearest module scope for paths that contain at least two components. r=graydon 2012-12-27 10:02:54 -08:00
Brian Anderson
dac88fa7e6 Remove transitional path2 attribute 2012-12-19 14:23:53 -08:00
Brian Anderson
9057e98a01 Make #[path] work with absolute paths again. Fix check-fast 2012-12-18 17:00:26 -08:00
Erick Tryzelaar
8650c6f683 Switch from serialization to std::serialize. (snapshot) 2012-12-17 20:00:36 -08:00
Brian Anderson
33a8f855c2 Make the path and path2 attributes equivalent. Remove some uses 2012-12-17 18:06:52 -08:00
Jakub Wieczorek
1968cb315a Add support for destructuring vectors in match expressions 2012-12-17 16:50:40 -08:00
Patrick Walton
4c2e4c37ce librustc: Make use statements crate-relative by default. r=brson 2012-12-13 13:05:22 -08:00
Graydon Hoare
3c8dca429a syntax: normalize paths when parsing, close #4173. 2012-12-13 12:04:27 -08:00
Graydon Hoare
e24ae85025 syntax: remove most code handling old-style syntax extensions. 2012-12-12 15:02:47 -08:00
Graydon Hoare
9cced55b93 syntax: remove all remaining uses of #ast, and #ast / qquote itself. 2012-12-12 15:02:47 -08:00
Brian Anderson
6e38e334de Relate the module hierarchy to directory paths in the parser
Introduces a temporary 'path2' attribute that will replace 'path' after
a snapshot
2012-12-11 15:00:23 -08:00
Tim Chevalier
0046ed9462 Remove un-needed code for obsolete classes
and rename "class" to "struct" everywhere possible (except local
vars, I was too lazy for that) -- that is why this commit is so
big.

No review, just dead code removal and renaming.

Closes #3515
2012-12-10 18:45:01 -08:00
Graydon Hoare
12c32e944d Add license boilerplate to more files. 2012-12-10 17:32:58 -08:00
Patrick Walton
98fdcb0b9d librustc: De-mode pattern bindings. r=nmatsakis 2012-12-07 19:34:57 -08:00
Patrick Walton
184f5102b3 libsyntax: Fix parsing of module-qualified structure patterns. rs=bugfix 2012-12-07 19:10:16 -08:00
Patrick Walton
ab3b752906 librustc: Implement "&mut [T]" as an expression. r=brson 2012-12-07 18:29:10 -08:00
Brian Anderson
10c9d7921d Trait constraints are separated by space, not comma 2012-12-07 15:54:17 -08:00
Brian Anderson
ecdc8aae41 Remove impl_id from trait_ref. Unused 2012-12-07 15:54:17 -08:00
Patrick Walton
b8cfd5c414 librustc: Long lines. rs=rustbot 2012-12-04 21:13:02 -08:00
Patrick Walton
56ece46f7d librustc: Remove all legacy pattern bindings from libsyntax and librustc. rs=refactoring 2012-12-04 14:19:19 -08:00
Graydon Hoare
00c856c0b1 Update license, add license boilerplate to most files. Remainder will follow. 2012-12-03 17:12:14 -08:00
Patrick Walton
f34833abfc librustc: Make a.b() always a method call. r=nmatsakis 2012-11-30 20:41:46 -08:00
Graydon Hoare
d783f4d7bb libs: Remove transitionary material on iter_bytes, add workcache to build. 2012-11-30 10:33:16 -08:00
Brian Anderson
3ed9fbd63c impls of traits cannot define methods on the anonymous trait 2012-11-29 22:07:49 -08:00
Graydon Hoare
ce24d37759 syntax: slight improvement in fidelity of printing tokens. Still not great. 2012-11-29 12:09:11 -08:00
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
15e03e1e5e Forbid attrs on macros, since we don't handle them properly yet. 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
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
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
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
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
Brian Anderson
be6613e048 Remove the crate language 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
Graydon Hoare
497a8b54b5 syntax: switch tt quoter to emit ~[tt], not tt. 2012-11-20 16:08:05 -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
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
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
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
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
Brian Anderson
2ec09c4eb9 Objectify the codemap 2012-11-12 18:24:56 -08:00
Brian Anderson
5b248a6ca8 Remove CodeMap box typedef from codemap 2012-11-12 17:09:52 -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
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
93a0763d53 libsyntax: Don't write a ctor ID for struct-like enum variants. rs=rustbot 2012-10-25 14:20:09 -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
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
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
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
Tim Chevalier
b03c71f629 Remove dead type definition 2012-10-18 12:19:43 -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
Patrick Walton
91ae5412d8 rustc: Merge module and type namespaces. r=brson 2012-10-15 15:35:36 -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
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
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
e1c517ca48 migrate libsyntax/rustc to auto_serialize2 2012-10-07 10:32:25 -07: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
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
b68d287780 libsyntax: Fix long line 2012-09-27 19:24:11 -07:00
Brian Anderson
463d5d5f0b Merge pull request #3607 from gutworth/incoming
utterly trivial refactoring
2012-09-27 18:35:43 -07:00
Patrick Walton
0bcb3bc536 libsyntax: Parse visibility modifiers before foreign items 2012-09-27 12:48:09 -07:00
Benjamin Peterson
459fe6ad55 factor out common lines 2012-09-27 15:05:06 -04:00