about summary refs log tree commit diff
path: root/src/comp/front
AgeCommit message (Collapse)AuthorLines
2011-06-01Move brace/if/for/while/do/alt/spawn exprs into bottom_expr rule.Graydon Hoare-23/+19
2011-05-31Now imports are not re-exported unless 'export' is explicitly used.Paul Stansifer-6/+26
2011-05-31Support move as an initializer.Michael Sullivan-0/+6
2011-05-31Insert plumbing for move that behaves just like assign.Michael Sullivan-0/+7
2011-05-31Teach the compiler to understand yield and join, as well as using task as a ↵Eric Holk-1/+3
type name.
2011-05-31Fix comment-scanning logic in lexer.Graydon Hoare-2/+4
2011-05-31Consolidate formatting functions a bit more.Graydon Hoare-3/+3
2011-05-31Add span to field to catch per-field comments in rec exprs.Graydon Hoare-5/+7
2011-05-31Improve comment handling in pp.Graydon Hoare-58/+163
2011-05-31rustc: Remove unneeded type params from alt patternsBrian Anderson-28/+28
2011-05-27Change the syntax for RECV from "var <- port" to "port |> var".Michael Sullivan-2/+2
2011-05-27Fix missing bump in RECV lexer case.Michael Sullivan-0/+1
2011-05-27Pretty print the new RECV token...Michael Sullivan-0/+1
2011-05-27Remove parser support for recv as an initializer in preparation for changing ↵Michael Sullivan-5/+7
the recv syntax.
2011-05-27Lex '|>' as the RECV token.Michael Sullivan-6/+14
2011-05-27"import module::*;" now works.Paul Stansifer-1/+0
2011-05-27Parsing and folding changes for globbed imports.Paul Stansifer-12/+42
2011-05-26Remove unused importsTim Chevalier-4/+1
2011-05-26Remove redisue of unused fields from 'ann'.Graydon Hoare-8/+2
2011-05-26Remove residual uses of fold, and fold itself.Graydon Hoare-30/+35
2011-05-25rustc: Fail better when the first argument to #fmt is not a string literalBrian Anderson-2/+3
2011-05-25rustc: Fail when #fmt is given too many argumentsBrian Anderson-1/+9
2011-05-23Get test-pass/utf8.rs to runMarijn Haverbeke-43/+23
This involved a small fix to the unicode-escape character lexing and to the pretty-printer.
2011-05-20Merge remote-tracking branch 'graydon/master' into typestate_4Tim Chevalier-3/+3
2011-05-20Annotate erroring functions in session and parserTim Chevalier-3/+3
2011-05-20More work on anonymous objects.Lindsey Kuper-3/+3
2011-05-20Make controlflow part of a function typeTim Chevalier-25/+58
Change ty_fn to have a controlflow field. A 'controlflow' is essentially a bit of data that says whether or not this function never returns to the caller (if it never returns, that means it calls "fail" or another "never-returns" function on every control path). Also add syntax for annotating functions that never return: fn foo() -> ! { fail; } for example. Functions marked with ! implicitly have a result type of ty_bot, which is a new type that this commit also adds.
2011-05-20rustc: Move the interner to a new module intended to be used for general ↵Patrick Walton-5/+5
data structures
2011-05-19Move the ty_item_table into ty::ctxt.items, move variant_info to ty, and ↵Graydon Hoare-7/+6
start sketching the contains_pointer property on types.
2011-05-19Finish name collision testing.Marijn Haverbeke-1/+0
And fix a the single screw-up in the source code it caught.
2011-05-19remove now-unused ts field from annTim Chevalier-5/+3
2011-05-17rustc: Flatten annotationsPatrick Walton-15/+9
2011-05-17Alias-ify the parser and lexerMarijn Haverbeke-123/+121
This only shaves a measly 19k off the rustc binary... but hey, every little thing helps.
2011-05-17Finally rename std::_xxx to std::xxxMarijn Haverbeke-130/+130
Except for _task, which is still a keyword.
2011-05-17Parser fix: 'fail' was eating the next token that came after it.Paul Stansifer-1/+0
2011-05-16Merge remote branch 'origin/master' into HEADGraydon Hoare-12/+48
Conflicts: src/comp/middle/trans.rs
2011-05-16Rewrite everything to use [] instead of vec() in value position.Graydon Hoare-81/+81
2011-05-16Begin vec() -> [] transition.Graydon Hoare-3/+3
2011-05-16Started adding support for return checking and non-returning function ↵Tim Chevalier-12/+48
annotations * Reorganized typestate into several modules. * Made typestate check that any function with a non-nil return type returns a value. For now, the check is a warning and not an error (see next item). * Added a "bot" type (prettyprinted as _|_), for constructs like be, ret, break, cont, and fail that don't locally return a value that can be inspected. "bot" is distinct from "nil". There is no concrete syntax for _|_, while the concrete syntax for the nil type is (). * Added support to the parser for a ! annotation on functions whose result type is _|_. Such a function is required to have either a fail or a call to another ! function that is reached in all control flow paths. The point of this annotation is to mark functions like unimpl() and span_err(), so that an alt with a call to err() in one case isn't a false positive for the return-value checker. I haven't actually annotated anything with it yet. * Random bugfixes: * * Fixed bug in trans::trans_binary that was throwing away the cleanups for nested subexpressions of an and or or (tests: box-inside-if and box-inside-if2). ** In typeck, unify the expected type arguments of a tag with the actual specified arguments.
2011-05-16rustc: Make the parser use the internerPatrick Walton-29/+31
2011-05-14fix a long line that i forgot to commitMarijn Haverbeke-1/+1
2011-05-14Mark IDENT tokens that are followed by ::Marijn Haverbeke-18/+19
So that the type parser won't go off and try to parse a vec type when it sees vec::init_op.
2011-05-13Remove rustboot from the repository.Graydon Hoare-3/+1
2011-05-13'with' no longer a token; whitespace police.Lindsey Kuper-9/+5
Plus renaming the anonymous objects test to a more descriptive name, and XFAILing it because it doesn't work yet.
2011-05-13Use new module namespace syntax.Lindsey Kuper-53/+45
2011-05-13Bug fixes.Lindsey Kuper-20/+22
Fixed infinite loop on anonymous objects in parser; added expr_anon_obj to walk.rs; fixed syntax of test case.
2011-05-13More progress on anonymous objects.Lindsey Kuper-8/+9
Still segfaulting on the method-overriding.rs test, though.
2011-05-13Correct capitalization of "Option".Lindsey Kuper-10/+9
2011-05-13Starting on support for anonymous objects. Just syntax so far.Lindsey Kuper-0/+70
2011-05-13Safeguard against using statement or item keywords as value idsMarijn Haverbeke-12/+78
This prevents insane things like 'auto while = 2', which would parse in the previous revision, but then break when you tried to mutate it with 'while = 10'.