Paul Stansifer
579768baa5
Allow folds to drop items.
2012-07-09 17:44:46 -07:00
Patrick Walton
7d90edcb3b
rustc: Switch over to resolve3
2012-07-09 17:44:16 -07:00
Patrick Walton
ad673daa6c
Revert "rustc: Switch over to resolve3" due to Linux failures
...
This reverts commit 2c0aa257e2
.
2012-07-09 16:50:19 -07:00
Patrick Walton
2c0aa257e2
rustc: Switch over to resolve3
2012-07-09 16:29:25 -07:00
Brian Anderson
c5687e1bfb
syntax: Pretty-print view item attributes
2012-07-09 15:40:06 -07:00
Graydon Hoare
638036fe55
Remove 'cont' from parser/lexer.
2012-07-09 14:47:45 -07:00
Graydon Hoare
c26d02557e
Switch 'cont' to 'again' everywhere. Close #2229 .
2012-07-09 14:37:48 -07:00
Patrick Walton
4d8113725d
rustc: Add some changes I missed
2012-07-09 11:05:48 -07:00
Patrick Walton
e41029d236
rustc: Switch to the new resolution pass
2012-07-09 10:27:13 -07:00
Niko Matsakis
a856bccdc6
Revert "rustc: Switch to the new resolution pass"
...
This reverts commit c4af6e92fb
.
Branch was burning...many, many unresolved imports.
2012-07-06 20:45:06 -07:00
Patrick Walton
c4af6e92fb
rustc: Switch to the new resolution pass
2012-07-06 19:07:26 -07:00
Graydon Hoare
6b8ebc12db
First step on #2826 , accept ^ for ty_ptr.
2012-07-06 16:03:51 -07:00
Graydon Hoare
ceac155211
For #2229 , recognize 'again' in place of 'cont', final change pending snapshot.
2012-07-06 15:46:39 -07:00
Eric Holk
7b03832c95
Updating tests to use pipes.
2012-07-06 10:42:41 -07:00
Eric Holk
fa4134611d
Fixing an infinite type, updating code to match new Early parser, remembering to add protocol parser.
2012-07-06 10:42:40 -07:00
Eric Holk
6806aa0e66
pingpong protocol parses, although I should probably rewrite this to use Paul's Early parser stuff.
2012-07-06 10:42:40 -07:00
Eric Holk
84434bc084
Recursively expand items, and keep expansion stack, per Paul's code review comments.
2012-07-06 10:42:40 -07:00
Eric Holk
d09bcc0131
Adding token tree nonterminals to earley parser.
2012-07-06 10:42:40 -07:00
Eric Holk
f0ef4ef81b
You can have any protocol you want, provided it's pingpong.
...
This integrates the pipe compiler into the proto syntax extension.
2012-07-06 10:42:40 -07:00
Eric Holk
05cdda3a2c
Plumbing and parsing for item-position macros.
2012-07-06 10:42:40 -07:00
Paul Stansifer
a8112f3b34
Allow soft failure of the macro parser.
2012-07-05 18:09:31 -07:00
Paul Stansifer
7f9b1fbe35
Add new syntax for interpolation and repetition, and allow the transcription of separators.
2012-07-05 18:09:31 -07:00
Paul Stansifer
62db5706e6
Start letting the parser catch interpolated ASTs.
2012-07-05 18:09:31 -07:00
Paul Stansifer
f940653720
Update the new macro demo.
2012-07-05 18:09:31 -07:00
Paul Stansifer
0c6fe6470e
Macro By Example transcription of token trees with interpolations and dotdotdots.
2012-07-05 18:09:31 -07:00
Paul Stansifer
f4fb975e4e
Store some span information for stride mismatches errors in MBE TT macros.
2012-07-05 18:09:31 -07:00
Paul Stansifer
534270551e
Move earley_parser.rs to a more appropriate place
2012-07-05 18:09:31 -07:00
Paul Stansifer
39590d81f0
Some rearranging in perparation for MBE-style TT transcription.
2012-07-05 18:09:31 -07:00
Paul Stansifer
74c2266a06
Document matchers a little better.
2012-07-05 18:09:31 -07:00
Tim Chevalier
663b3fc89c
Uncomment destructor in parser now that dtors work
...
Although this one is just a hack to make a class non-copyable.
(Do we want syntax for that instead?)
2012-07-05 16:11:51 -07:00
Tim Chevalier
889be71cb4
Comments only: change TODOs to FIXMEs and annotate them
2012-07-05 16:10:29 -07:00
Tim Chevalier
50d2e7e07e
Mostly change TODOs to FIXMEs and annotate them
...
But, one change in io to implement a TODO suggestion (using a
const u8)
2012-07-05 15:06:33 -07:00
Lindsey Kuper
33334f3c43
Change 'iface' to 'trait' internally; parse trait
as iface
synonym
2012-07-05 11:01:43 -07:00
Gareth Daniel Smith
be0141666d
convert doc-attributes to doc-comments using ./src/etc/sugarise-doc-comments.py (and manually tweaking) - for issue #2498
2012-07-04 19:18:13 -07:00
Patrick Walton
277f06dbb8
syntax: Add native module names correctly when building up the paths in the AST map
2012-07-03 18:32:47 -07:00
Brian Anderson
ae6ea068a1
Revert "Remove rule requiring non-nil block-style statements to be semi-terminated"
...
This reverts commit 0f5eaef5fb
.
2012-07-03 17:30:25 -07:00
Brian Anderson
0f5eaef5fb
Remove rule requiring non-nil block-style statements to be semi-terminated
...
This is a subtle rule that no longer seems to be required.
2012-07-03 17:03:52 -07:00
Graydon Hoare
3f59a4bc64
More work on #2082 , remove parser/lexer support for 'crust' and 'native'.
2012-07-03 16:49:46 -07:00
Graydon Hoare
be2c92078b
Change crust -> extern.
2012-07-03 16:49:46 -07:00
Graydon Hoare
debb7e4641
Switch 'native' to 'extern' (or 'foreign' in some descriptions)
2012-07-03 16:11:00 -07:00
Michael Sullivan
c854d6ebdb
Remove some bogus exports.
2012-07-03 10:52:32 -07:00
Patrick Walton
f093d374ed
rustc: Implement a new resolve pass behind a compile flag
2012-07-02 18:30:12 -07:00
Brian Anderson
569467eb0d
Merge remote-tracking branch 'Dretch/prettydocs'
...
Conflicts:
src/compiletest/errors.rs
src/libsyntax/parse/attr.rs
src/libsyntax/parse/comments.rs
src/test/compile-fail/ambig_impl_unify.rs
src/test/compile-fail/assign-super.rs
src/test/compile-fail/bad-for-loop.rs
src/test/compile-fail/bad-var-env-capture-in-block-arg.rs
src/test/compile-fail/block-arg-as-stmt-with-value.rs
src/test/compile-fail/borrowck-assign-comp-idx.rs
src/test/compile-fail/borrowck-lend-flow.rs
src/test/compile-fail/borrowck-loan-blocks-move-cc.rs
src/test/compile-fail/borrowck-loan-blocks-mut-uniq.rs
src/test/compile-fail/borrowck-loan-rcvr.rs
src/test/compile-fail/borrowck-loan-vec-content.rs
src/test/compile-fail/borrowck-mut-vec-as-imm-slice-bad.rs
src/test/compile-fail/cap-clause-with-stack-closure.rs
src/test/compile-fail/do1.rs
src/test/compile-fail/do2.rs
src/test/compile-fail/empty-vec-trailing-comma.rs
src/test/compile-fail/evec-subtyping.rs
src/test/compile-fail/issue-1896.rs
src/test/compile-fail/issue-2149.rs
src/test/compile-fail/issue-2150.rs
src/test/compile-fail/issue-2487-b.rs
src/test/compile-fail/kindck-implicit-close-over-mut-var.rs
src/test/compile-fail/liveness-issue-2163.rs
src/test/compile-fail/liveness-use-in-index-lvalue.rs
src/test/compile-fail/no-reuse-move-arc.rs
src/test/compile-fail/no-send-res-ports.rs
src/test/compile-fail/non-const.rs
src/test/compile-fail/pure-higher-order.rs
src/test/compile-fail/pure-loop-body.rs
src/test/compile-fail/regions-addr-of-upvar-self.rs
src/test/compile-fail/regions-escape-loop-via-vec.rs
src/test/compile-fail/regions-scoping.rs
src/test/compile-fail/seq-args.rs
src/test/compile-fail/tstate-unsat-in-called-fn-expr.rs
src/test/compile-fail/tstate-unsat-in-fn-expr.rs
src/test/compile-fail/vec-add.rs
src/test/compile-fail/vec-concat-bug.rs
src/test/compile-fail/vector-no-ann.rs
2012-07-02 15:23:41 -07:00
Brian Anderson
9743757113
syntax: Support dropping argument list from for/do
2012-07-01 22:36:24 -07:00
Brian Anderson
494264711d
syntax: Stop parsing old closure syntax
2012-07-01 19:19:36 -07:00
Brian Anderson
d1fc2b5995
Convert to new closure syntax
2012-07-01 19:19:32 -07:00
Brian Anderson
13a8f54538
syntax: Pretty print new closures correctly
2012-07-01 17:53:07 -07:00
Brian Anderson
3155d170ad
syntax: Fix lambda parsing following 'ret'
2012-06-30 21:20:36 -07:00
Brian Anderson
ed834f0629
syntax: Add support for new lambda syntax
2012-06-30 16:01:52 -07:00
Brian Anderson
0293a31b68
Remove old sugared call syntax
2012-06-30 16:01:52 -07:00
Brian Anderson
a3382b6f26
Eliminate usages of old sugared call syntax
2012-06-30 16:01:49 -07:00
Brian Anderson
8b2491160d
syntax: Pretty-print 'do' correctly
2012-06-30 14:24:24 -07:00
Gareth Daniel Smith
0b653ab953
initial draft of fix for issue #2498 :
...
1. make /// ... and //! ... and /** ... */ and /*! ... */ into sugar for #[doc = ...] attributes.
2. add a script in etc/ to help converting doc-attributes to doc-comments
3. add some functions to core::str to help with (1)
2012-06-30 11:54:54 +01:00
Michael Sullivan
98e161f00e
Switch the compiler over to using ~[] notation instead of []/~. Closes #2759 .
2012-06-29 17:41:45 -07:00
Michael Sullivan
3bf5fef0e5
Refactor syntax exts some. Don't ever emit bare vectors.
2012-06-29 14:38:33 -07:00
Michael Sullivan
7aa43b2599
Make fmt use a bitmask instead of a vector of flags. Closes #1993 .
2012-06-28 23:36:00 -07:00
Michael Sullivan
810677efb5
Parse ~[...] as [...]/~. Same for @ and &. Closes #2747 .
2012-06-28 17:10:06 -07:00
Michael Sullivan
e9382ef1ac
Have #fmt use str::concat to build up the string instead of using binary +. Closes #2746 .
2012-06-28 16:30:05 -07:00
Michael Sullivan
d91e310982
Don't use literal info from the original source when pretty printing expanded ASTs.
2012-06-28 15:33:15 -07:00
Eric Holk
59221e9ac8
replace more vector + (issue #2719 )
2012-06-28 13:52:23 -07:00
Eric Holk
ae06546bbf
Replace more vector + (issue #2719 )
2012-06-27 23:09:51 -07:00
Michael Sullivan
3297d465ca
Have the syntax extension ast builders reserve the extra node ids required for overloading. Closes #2732 .
2012-06-27 16:19:10 -07:00
Patrick Walton
143c7a3d96
syntax: Don't use an enum name as a variable name
2012-06-27 16:17:36 -07:00
Graydon Hoare
d3c6119a7a
More keyword paring and migration in runtime, docs, code modes.
2012-06-27 13:30:49 -07:00
Graydon Hoare
697f1e38d6
Change 'native' and 'crust' to 'extern'.
...
This comes with a terminology change. All linkage-symbols are 'extern'
now, including rust syms in other crates. Some extern ABIs are
merely "foreign". The term "native" is retired, not clear/useful.
What was "crust" is now "extern" applied to a _definition_. This
is a bit of an overloading, but should be unambiguous: it means
that the definition should be made available to some non-rust ABI.
2012-06-26 16:18:37 -07:00
Eric Holk
b9d3ad0736
Getting rid of lots more vector +=. (issue #2719 )
2012-06-26 00:39:18 -07:00
Michael Sullivan
329eca6044
Make vectors uglier ([]/~). Sorry. Should be temporary. Closes #2725 .
2012-06-25 20:00:46 -07:00
Michael Sullivan
c087aaf56b
When we cons up vector asts, generate evecs.
2012-06-25 20:00:39 -07:00
Paul Stansifer
4df2654f82
Make it possible to make built-in tt syntax extensions
2012-06-25 18:01:37 -07:00
Paul Stansifer
4f104954a6
parsing for the macro system
2012-06-25 18:01:37 -07:00
Tim Chevalier
da470ff5b8
Merge
2012-06-25 13:29:41 -07:00
Brian Anderson
c01f5ef034
Long lines
2012-06-24 17:46:12 -07:00
Brian Anderson
20b5ca3d2f
syntax: Merge parse_for_expr, parse_do_expr
2012-06-24 17:08:05 -07:00
Tim Chevalier
487cbf8e90
Remove resources
...
Also fixed shapes for classes with dtors, as well as handling
offsets for classes with dtors correctly in take glue.
Closes #2485
2012-06-24 15:09:57 -07:00
Graydon Hoare
f60cdf27e7
Remove 'implements' keyword in favour of :, part of #2301 .
2012-06-22 18:57:20 -07:00
Michael Sullivan
275c1e4438
Serialize out uniq vecs types
2012-06-22 11:58:07 -07:00
Graydon Hoare
312faf31df
Tag all remaining FIXMEs with bugs. Install rule in tidy script to enforce this.
2012-06-21 16:44:10 -07:00
Eric Holk
f21fbc23d2
Fixed another performance issue
2012-06-21 16:11:11 -07:00
Eric Holk
0e5cfd9f33
Move vector addition out of trans and into libcore.
2012-06-21 16:11:11 -07:00
Niko Matsakis
287f163136
Issue #2657 : track mutability of bindings, also prevent move from bindings
2012-06-21 09:45:01 -07:00
Brian Anderson
4dcf84e4f4
Remove bind. Issue #2189
2012-06-20 17:27:28 -07:00
Brian Anderson
1ec5a5c635
Add 'do' expressions
2012-06-18 17:42:30 -07:00
Tim Chevalier
e3c6e5e5b6
Re-fix whitespace
2012-06-16 15:22:22 -07:00
Tim Chevalier
69447e9002
Revert "Reference and whitespace fixes."
...
This reverts commit 52f1904ddd
.
2012-06-16 15:17:10 -07:00
Eric Holk
52f1904ddd
Reference and whitespace fixes.
2012-06-15 22:14:02 -04:00
Eric Holk
5c9f414a85
id_visitor should handle expr_index and expr_assign_op as well.
2012-06-15 22:00:04 -04:00
Tim Chevalier
093faaabe1
Handle index expressions' callee IDs correctly
...
Some code that handles unary and binary exprs' callee IDs was
forgetting to handle the index expr case (since calls to
user-defined index operators also have callee IDs). This was
manifesting as an ICE in trans because when monomorphizing a
function that had one of these operators in it (an index into a
dvec, in the test case), the callee ID would be unbound to a type.
Fixed it. Closes #2631 .
2012-06-15 15:21:17 -07:00
Paul Stansifer
047e3c45b3
Lexers now emit spans, not chposes.
2012-06-15 12:41:41 -07:00
Paul Stansifer
d6522ab2d3
Beginning of support for interpolation into token trees.
2012-06-15 12:41:41 -07:00
Paul Stansifer
d906fba636
Make token tree lexers and their stacks unique.
2012-06-15 12:41:41 -07:00
Paul Stansifer
d03c04b6ea
Make tt lexers duplicatible.
2012-06-15 12:41:41 -07:00
Paul Stansifer
2f8be7dcbb
Bugfix: obey the tt_lexer's own invariants.
2012-06-15 12:41:41 -07:00
Paul Stansifer
1e36d216be
Add the interner to parse_sess.
2012-06-15 12:41:41 -07:00
Paul Stansifer
85ded92736
Make it possible to make tt_reader-based parsers.
2012-06-15 12:41:41 -07:00
Paul Stansifer
d619e8995f
Make token trees re-lexable.
2012-06-15 12:41:41 -07:00
Paul Stansifer
1d25981c73
Formatting fixup in parser.rs
2012-06-15 12:41:41 -07:00
Paul Stansifer
32167f52b0
Pull out an interface for the lexer.
2012-06-15 12:41:41 -07:00
Paul Stansifer
473b1ec0a0
Make token trees parseable.
2012-06-15 12:41:41 -07:00
Lindsey Kuper
77e6573929
Further work on integer literal suffix inference ( #1425 )
...
In this commit:
* Change the lit_int_unsuffixed AST node to not carry a type, since
it doesn't need one
* Don't print "(unsuffixed)" when pretty-printing unsuffixed integer
literals
* Just print "I" instead of "(integral)" for integral type variables
* Set up trans to use the information that will be gathered during
typeck to construct the appropriate constants for unsuffixed int
literals
* Add logic for handling int_ty_sets in typeck::infer
* Clean up unnecessary code in typeck::infer
* Add missing mk_ functions to middle::ty
* Add ty_var_integral to a few of the type utility functions it was
missing from in middle::ty
2012-06-14 20:24:36 -07:00
Tim Chevalier
39d9c30a15
Remove code from parser that was awaiting snapshot
...
Remove old parser functions as well as support for old-style capture
clauses. Remove remaining old-style capture clauses.
2012-06-14 19:09:02 -07:00
Tim Chevalier
6b16325f43
Comments only: annotate FIXMEs
2012-06-14 18:46:33 -07:00
Lindsey Kuper
cce7327487
Allow trailing commas in import lists. Closes #2582 .
2012-06-13 11:53:35 -07:00
Brian Anderson
ce750a7dbc
Box AST idents
2012-06-13 11:30:45 -07:00
Tim Chevalier
aa9d2d88d3
Handle class destructors correctly in metadata
...
This allows destructors to be inlined, which is necessary since
classes can have both ty params and destructors.
2012-06-12 17:37:04 -07:00
Lindsey Kuper
8a730a255d
Allow trailing comma in vectors. Closes #2482 .
2012-06-12 13:03:30 -07:00
Lindsey Kuper
bffb7db8ae
syntax: clarify that trailing separators are never required
2012-06-12 11:18:31 -07:00
Lindsey Kuper
b75199634a
syntax: minor cleanups; making things more idiomatic
2012-06-11 16:49:35 -07:00
Lindsey Kuper
8467279fac
Add a new AST node for unsuffixed integer types.
2012-06-11 16:34:56 -07:00
Brian Anderson
c1859d4cd0
Fix long lines
2012-06-09 03:42:30 -07:00
Brian Anderson
794f664dd9
syntax: Don't copy source string
2012-06-09 01:01:14 -07:00
Brian Anderson
21087bf1a5
syntax: Intern @strs instead of strs
2012-06-09 00:53:34 -07:00
Patrick Walton
436b77c9f8
Revert "syntax: Remove a couple of implicit copies" due to test failures
...
This reverts commit 46b12d3e05
.
2012-06-08 19:15:17 -07:00
Patrick Walton
46b12d3e05
syntax: Remove a couple of implicit copies
2012-06-08 17:56:17 -07:00
Patrick Walton
c7c37debe4
syntax: Use a ring buffer instead of a dvec and save a bunch of copies. Shaves a second or two off rustc.
2012-06-08 17:17:31 -07:00
Patrick Walton
cdcae39ba3
syntax: Remove some more implicit copies
2012-06-07 22:51:00 -07:00
Patrick Walton
fd85239119
syntax: Remove several deep copies that were happening due to misuse of parse_seq
2012-06-07 22:09:27 -07:00
Patrick Walton
26faa37305
syntax: Add a lot of copy keywords
2012-06-07 21:53:47 -07:00
Patrick Walton
847c5e4e98
syntax: Remove a bunch of implicit copies
2012-06-07 20:12:05 -07:00
Tim Chevalier
0327dc0b18
Insert missing maybe_print_comment call for class destructors
...
While it wasn't the original issue, the first program from #2487
failed the pretty-printing test because of this, so it's still a good
test case :-)
It also turns out that the second program from #2487 now triggers a
kind error, so I figured I might as well add it as a test case.
2012-06-06 22:09:10 -07:00
Tim Chevalier
de4f0b92b6
Say "easily" instead of "sanely"
...
I can't correct it every time, but every time someone uses "insane"/
"sane" as synonyms for "bad"/"good", they're saying that being like
me is the same as being everything that's bad and wrong in the world...
so I'm changing this to a word that means approximately the same thing
but doesn't devalue any group of people.
2012-06-06 22:09:10 -07:00
Niko Matsakis
3b4cfdeee2
Merge remote-tracking branch 'mozilla/incoming'
...
Conflicts:
src/rustc/middle/tstate/auxiliary.rs
2012-06-06 19:00:34 -07:00
Niko Matsakis
9c1910a66d
workaround LLVM bug #13042
2012-06-06 18:42:11 -07:00
Niko Matsakis
2adb3a5013
add pure annotations in ast_util
2012-06-06 18:37:18 -07:00
Niko Matsakis
45680c83ab
borrowck changes: some copies, some removed mut annotations, some dvec
2012-06-06 18:37:04 -07:00
Niko Matsakis
b61071d953
make lookup fn pure in codemap
2012-06-06 18:36:34 -07:00
Niko Matsakis
bede54b14a
misc. copies in core/syntax to please borrowck
2012-06-06 18:36:15 -07:00
Lindsey Kuper
cba77ffbfa
syntax: More grammatical error message
2012-06-06 14:51:13 -07:00
Lindsey Kuper
1a3b8fc43c
Have "aborting due to previous errors" message show an error count
2012-06-05 10:08:32 -07:00
Brian Anderson
75e4b8c8e9
syntax: Make span functions take args by copy. Eliminate some copy warnings
2012-06-04 21:57:47 -07:00
Michael Sullivan
6396e2c3c3
Make vecs implicitly copyable for all of our projects.
2012-06-04 19:53:30 -07:00
Patrick Walton
ae6d8d1b4d
rustc: Implement optional fat-arrow syntax for alt (transitional change)
2012-06-04 18:35:14 -07:00
Patrick Walton
70353cdbc4
Move imports around in qquote to avoid another cyclic import
2012-06-04 14:25:36 -07:00
Patrick Walton
3aaef3b9c7
Remove cyclic import * that resolve probably shouldn't have accepted
2012-06-04 13:40:08 -07:00
Niko Matsakis
3f6e6532ac
make vec fns/methods take imm slices.
...
this also repairs the unsoundness in typing of unpack_slice,
which was silently converting a const ptr to an imm one.
2012-06-02 19:14:57 -07:00
Graydon Hoare
57f399bd63
Implement 2 kinds of char / str escaping. Use in rustc. Close #2306 .
2012-05-31 15:32:29 -07:00
Eric Holk
3acc3c4d85
Make std::map require const keys.
2012-05-31 13:55:54 -07:00
Lindsey Kuper
f394933641
Allow optional comma before with
in FRU. Closes #2463 .
2012-05-31 12:20:26 -07:00
Lindsey Kuper
abef5f54c9
syntax: get rid of redundant case
2012-05-31 12:20:25 -07:00
Kevin Cantu
7dcbaedd32
Rename librustsyntax to libsyntax
...
Per issue #2418 .
2012-05-31 11:15:00 -07:00