Brian Anderson
7ee90cc7be
syntax: Rename is_word to is_keyword, etc.
2012-04-24 21:08:49 -07:00
Tim Chevalier
f7641286b2
Allow classes to be cast to ifaces that are in the same crate
...
I had to xfail one existing test case (class-implements-int) because,
I think, of the same bug described in #2272 .
2012-04-23 21:15:03 -07:00
Tim Chevalier
1c39fda0ea
Rename option::get_or_default to get_default, for consistency
2012-04-23 20:52:50 -07:00
Marijn Haverbeke
9053f54498
Move map iface over to more for
-friendly iteration methods
2012-04-23 15:18:19 +02:00
Marijn Haverbeke
a872a99bfe
Simplify representation of ast::path
2012-04-23 13:04:46 +02:00
Marijn Haverbeke
a61f107684
pretty printer: Properly print explicity types for block params
2012-04-23 10:27:09 +02:00
Brian Anderson
512927573e
syntax: Replace token::DOLLAR_PAREN, DOLLAR_NUM with just DOLLAR
...
Figure the rest out in the parser
2012-04-22 17:24:49 -07:00
Brian Anderson
7321c17171
syntax: Eliminate token::POUND_LT, POUND_LBRACE
...
Use lookahead in the parser
2012-04-22 15:19:14 -07:00
Brian Anderson
92b2113583
syntax: Move is_lit to mod token
2012-04-22 14:59:04 -07:00
Brian Anderson
fa86b5d67f
syntax: Remove unused BRACEQUOTE, IDX, LIT_BOOL tokens
2012-04-22 14:58:10 -07:00
Brian Anderson
7235f3cee2
syntax: Eliminate 'mutable' keyword. Closes #2254
2012-04-21 14:27:20 -07:00
Tim Chevalier
37b0549730
Add new syntax for patterns that match the head constructor only
...
Adds a new kind of pattern C(*) where C is a constructor that may
have any number of fields. This pattern matches any value
constructed with C, without binding names for any of the fields.
Closes #1701 .
2012-04-20 00:56:46 -07:00
Brian Anderson
087b12ac29
syntax: Reorganize mod parse
2012-04-19 21:58:45 -07:00
Brian Anderson
7fa7e56341
syntax: Move fn spanned into ast_util
2012-04-19 21:58:45 -07:00
Brian Anderson
bcbcbad774
syntax: Extract some functions into mod common
2012-04-19 21:58:45 -07:00
Brian Anderson
628e80d525
syntax: Extract attribute parsing to its own mod
2012-04-19 21:58:45 -07:00
Niko Matsakis
3d6c79109e
update syntax to include a slash
2012-04-19 21:01:11 -07:00
Niko Matsakis
3c995fb8f3
make nominal types optionally parameterized by a self region.
...
Issue #2201 .
2012-04-19 21:01:11 -07:00
Tim Chevalier
31ff64c62d
Annotate FIXMEs in parser
...
Also, get rid of two FIXMEs by refactoring some code, and moving the
call_expr check for be expressions into typeck, where it seems to
make more sense.
2012-04-19 19:17:59 -07:00
Brian Anderson
b9ae0c555b
syntax: Funnel all words through a single keyword table
2012-04-19 16:59:28 -07:00
Tim Chevalier
b0074c5a92
Disallow rebinding / matching against consts in alts
...
As per Issue #1193 . Closes #1193 .
I had to rename a few variables ("info" and "epsilon") to avoid
clashing with in-scope constants, which is responsible for all the
changes other than resolve and issue-1193.rs.
2012-04-19 16:21:15 -07:00
Tim Chevalier
cd2effe022
Annotate FIXMEs (comments only)
2012-04-19 15:30:59 -07:00
Tim Chevalier
37ea010b0d
Move some functions from pprust to classify
...
As per a FIXME in syntax::parse::classify, move predicates on exprs
and stmts into classify, out of pprust
2012-04-19 15:30:58 -07:00
Tim Chevalier
1da18c70ac
Clean up FIXMEs in syntax::fold
...
Eta-reduce a function, fold over ty constrs, and annotate a FIXME.
2012-04-19 15:30:58 -07:00
Tim Chevalier
030404c793
Cleanup FIXMEs in syntax::ext::qquote
...
Inline some one-off functions, add an error message, annotate a FIXME
2012-04-19 15:30:58 -07:00
Tim Chevalier
e6b5b4827b
Removed a FIXME from librustcsyntax/ext/build.rs
...
I removed a FIXME about cleaning up function names because I
couldn't tell what needed cleaning up. If you know, please add a
FIXME and a corresponding issue tracker issue that explains the
problem!
2012-04-19 15:30:58 -07:00
Tim Chevalier
df28ab1bd1
Comments only: annotate FIXMEs in lexer
2012-04-19 15:24:49 -07:00
Graydon Hoare
956bc773c6
Fix [] on str to exclude the trailing null.
2012-04-18 17:50:58 -07:00
Brian Anderson
9a8a04629e
syntax: Put the main parser interface in mod parse
2012-04-18 10:50:50 -07:00
Brian Anderson
2c0cb901c8
syntax: Begin moving functions from mod parser to mod classify
2012-04-18 10:50:50 -07:00
Brian Anderson
d51973a6a6
syntax: Move some functions from parser to token
2012-04-18 10:50:50 -07:00
Brian Anderson
476d5a099d
syntax: Extract prec mod from parser mod
2012-04-18 10:50:50 -07:00
Brian Anderson
321ccc123d
syntax: Add explicit exports in parser mods
2012-04-17 20:10:58 -07:00
Brian Anderson
fac7fcc123
syntax: Remove extra 'mut' from bad word table
2012-04-17 14:22:47 -07:00
Niko Matsakis
35a93e61d4
rewrite region resolution so it takes place in typeck
2012-04-16 19:48:00 -07:00
Brian Anderson
b78ca38380
syntax: Remove unused lexer field
2012-04-15 05:13:10 -07:00
Brian Anderson
3df37c3c45
syntax: Cleanup in diagnostic
2012-04-15 04:40:05 -07:00
Brian Anderson
e88b17c3b2
syntax: Limit exports in codemap
2012-04-15 04:34:51 -07:00
Brian Anderson
34ba1850b9
syntax: Some minor lexer refactoring
2012-04-15 04:19:52 -07:00
Brian Anderson
4b4f064315
syntax: lexer doesn't need to store the src length
2012-04-15 04:02:25 -07:00
Brian Anderson
2319c2d1ba
syntax: lexer doesn't need a codemap
2012-04-15 03:57:24 -07:00
Brian Anderson
aa8dc0175d
syntax: Limit exports from lexer
2012-04-15 03:49:59 -07:00
Brian Anderson
0e87f9ed02
syntax: Eliminate token's dependency on lexer
2012-04-15 03:44:32 -07:00
Brian Anderson
932aa893fd
syntax: Move comment-extraction code to its own module
2012-04-15 03:27:24 -07:00
Brian Anderson
4f576275be
syntax: Cleanup attr module. Closes #1545
2012-04-15 01:43:38 -07:00
Tim Chevalier
1adc26d5e7
Annotate FIXMEs in syntax::ast and syntax::ast_util
...
The main non-comment change was to change simple_path to path,
as per a FIXME in ast.
2012-04-13 01:46:56 -07:00
Graydon Hoare
8a7fd4a04f
Support general warnings and errors in lint pass via flags and attrs. Close #1543 .
2012-04-12 17:31:49 -07:00
Tim Chevalier
5c12cd72f4
Allow classes to implement ifaces
...
Introduce syntax like:
iface animal { ... }
class cat implements animal { ... }
to allow classes to implement ifaces. Casting classes to ifaces
is *not* yet supported. ifaces that a class implements are not
yet included in metadata.
The syntax is subject to change, and may go away completely if we
decide to use duck typing to relate classes with ifaces (see
http://smallcultfollowing.com/babysteps/blog/2012/04/10/declared-vs-duckish-typing/ )
2012-04-11 16:20:01 -07:00
Brian Anderson
d65df5d4d4
rustsyntax: i64, not int
2012-04-11 13:28:57 -07:00
Graydon Hoare
aeca5bae90
Fix name.
2012-04-11 11:08:40 -07:00
Graydon Hoare
7a3b290245
Add vstore/evec/estr to compiler.
2012-04-11 11:08:40 -07:00
Tim Chevalier
fd26743bed
Generic classes and generic class methods work cross-crate
...
Classes can have ty params now. So can methods inside classes.
That was probably true before, but now it should still work if you
call methods in a class that's defined in a different crate. Yay!
2012-04-10 11:01:36 -07:00
Tim Chevalier
9d274ec5f2
Re-rename option functions
...
get_with_default (nee from_maybe) => get_default
with_option (nee maybe) => map_default
with_option_do (nee may) => iter
As per discussion of 21be1379d5
2012-04-06 12:20:13 -07:00
Marijn Haverbeke
fc202ca034
Remove support for old-style for
...
Closes #1619
2012-04-06 20:38:23 +02:00
Marijn Haverbeke
c902eafa14
Convert old-style for loops to new-style
...
Most could use the each method, but because of the hack used to
disambiguate old- and new-style loops, some had to use vec::each.
(This hack will go away soon.)
Issue #1619
2012-04-06 20:38:23 +02:00
Brian Anderson
de3528846f
rustc: Fail when there are multiple matches for 'use'
2012-04-06 10:58:03 -07:00
Niko Matsakis
051f24da25
add static region and also fix regions to be contravariant
2012-04-05 21:16:28 -07:00
Brian Anderson
d13c0c77a2
Explicitly use version 0.2 of crates
2012-04-05 20:29:42 -07:00
Tim Chevalier
1f892dcb01
Monomorphize class constructors, support generic classes and class methods
...
Allow class methods to have type parameters (this is a change from the
original classes proposal).
Add test cases for classes with type parameters, and classes with methods
that have their own type parameters.
2012-04-03 16:23:50 -07:00
Tim Chevalier
21be1379d5
Rename some core::option functions
...
from_maybe => get_with_default
maybe => with_option
may => with_option_do
I know these names are kind of ridiculous, but it's the best I could think of.
Feel free to bikeshed. Closes #2081
2012-04-02 16:12:49 -07:00
Niko Matsakis
2b45da8a33
refactor to store the types during inference in tables in the fcx
...
this is a step towards separating out the repr. of
types during inference from the repr. in later stages.
2012-03-29 19:41:09 -07:00
Brian Anderson
106c9faa59
rustc: Move ext to librustsyntax
2012-03-29 14:42:31 -07:00
Brian Anderson
442d0a783a
rustc: Move attr, parse, print to rustsyntax
2012-03-29 14:42:31 -07:00
Brian Anderson
15947f8b19
rustc: Move lexer and token to rustsyntax
2012-03-29 14:42:30 -07:00
Brian Anderson
8f809f89d9
rustc: Move diagnostic to rustsyntax
2012-03-29 14:42:30 -07:00
Brian Anderson
5c25e78b27
rustc: Move fold to rustsyntax
2012-03-29 14:42:30 -07:00
Brian Anderson
454df53464
rustc: Move interner to rustsyntax
2012-03-29 14:42:30 -07:00
Brian Anderson
9e299f53f4
rustc: Move ast, ast_util, visit to rustsyntax
2012-03-29 14:42:30 -07:00
Brian Anderson
140151f3f9
rustc: Move codemap to rustsyntax
2012-03-29 14:42:30 -07:00
Brian Anderson
a0ed1fb20b
build: Introduce rustsyntax crate
2012-03-29 14:42:30 -07:00