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