aboutsummaryrefslogtreecommitdiff
path: root/src/comp/front
Commit message (Collapse)AuthorAgeFilesLines
* 'with' no longer a token; whitespace police.Lindsey Kuper2011-05-131-9/+5
| | | | | Plus renaming the anonymous objects test to a more descriptive name, and XFAILing it because it doesn't work yet.
* Use new module namespace syntax.Lindsey Kuper2011-05-132-53/+45
|
* Bug fixes.Lindsey Kuper2011-05-132-20/+22
| | | | | Fixed infinite loop on anonymous objects in parser; added expr_anon_obj to walk.rs; fixed syntax of test case.
* More progress on anonymous objects.Lindsey Kuper2011-05-131-8/+9
| | | | Still segfaulting on the method-overriding.rs test, though.
* Correct capitalization of "Option".Lindsey Kuper2011-05-132-10/+9
|
* Starting on support for anonymous objects. Just syntax so far.Lindsey Kuper2011-05-132-0/+70
|
* Safeguard against using statement or item keywords as value idsMarijn Haverbeke2011-05-131-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'.
* Make the parser more careful about keywordsMarijn Haverbeke2011-05-133-1147/+608
| | | | | | Keywords are now only recognized in contexts where they are valid. The lexer no longer recognizes them, all words are lexed as IDENT tokens, that get interpreted by the parser.
* Extend crate format to allow multiple definitions for a single nameMarijn Haverbeke2011-05-131-82/+51
| | | | | The type/value namespace distinction pretty much works now. Module namespace is up next.
* Move capture checking into resolve.rsMarijn Haverbeke2011-05-131-2/+0
| | | | | Drops capture.rs. The new algorithm also checks for captures function arguments and obj fields.
* Rename std.extfmt.CT to std.extfmt.RT to ct and rtBrian Anderson2011-05-121-32/+32
| | | | | Temporarily duplicate the entire RT module, leaving it with the old name to accomodate the stage0 compiler. Will be removed after the next snapshot.
* Downcase std modules again, move to :: for module dereferencingMarijn Haverbeke2011-05-129-1497/+1500
| | | | This should be a snapshot transition.
* Transitional change to make extfmt output lowercase module nameMarijn Haverbeke2011-05-121-1/+1
|
* Change module dereference syntax from . to ::Marijn Haverbeke2011-05-124-58/+30
| | | | This will need to be a snapshot.
* Remove some truly wrong logic in parse_constrsMarijn Haverbeke2011-05-121-13/+8
|
* Keep resolve data in external hash table, rather than embedded defsMarijn Haverbeke2011-05-124-20/+33
| | | | | | | | | | | | | One step closer to removing fold and having a single, immutable AST. Resolve still uses fold, because it has to detect and transform expr_field expressions. If we go through on our plan of moving to a different syntax for module dereferencing, the parser can spit out expr_field expressions, and resolve can move to walk. (I am truly sorry for the things I did in typestate_check.rs. I expect we'll want to change that to walk as well in the near future, at which point it should probably pass around a context record, which could hold the def_map.)
* Ensure ann tags are actually kept around during typecheckingMarijn Haverbeke2011-05-121-1/+9
| | | | | | This way, the tag assigned by the parser stays with the node. I realize ann replacing is probably going away real soon, but I needed this now for moving the resolve defs out of the AST.
* Properly lex block comments followed by EOFMarijn Haverbeke2011-05-121-4/+4
|
* Remove unused filename parameter from lexer.new_readerBrian Anderson2011-05-112-3/+3
|
* Give the lexer a session so that it can fail more informativelyBrian Anderson2011-05-112-19/+30
|
* Remove mod indices from the ASTMarijn Haverbeke2011-05-113-148/+27
| | | | | They are now created by the resolve pass, which is the only pass that needs them, and kept internal to that pass.
* Get rid of arm indicesMarijn Haverbeke2011-05-112-24/+3
|
* Get rid of block indicesMarijn Haverbeke2011-05-112-55/+13
|
* Use a const for crate-num-zero (ast.local_crate)Marijn Haverbeke2011-05-111-0/+1
|
* Rewrite comp/middle/resolve.rsMarijn Haverbeke2011-05-113-13/+6
| | | | | | | | | * Cleans up the algorithm * Move first pass to walk (second still folds) * Support part of a type/value namespace split (crate metadata and module indices still need to be taught about this) * Remove a few blatant inefficiencies (import tables being recreated for every lookup, most importantly)
* rustc: Number everything with an annotationPatrick Walton2011-05-104-148/+166
|
* Alias-ify fold and its users, remove another 85kb.Graydon Hoare2011-05-091-3/+4
|
* Remove boxes from token.t.Graydon Hoare2011-05-093-42/+79
|
* rustc: Alias fix part 1 -- Separate out AST modes from typechecker modes, ↵Patrick Walton2011-05-091-2/+2
| | | | and introduce an "either value or alias" mode
* Fix GenericOS.getenv returning a raw str, return an Option.t[str] instead.Graydon Hoare2011-05-061-2/+11
|
* Rename std modules to be camelcasedMarijn Haverbeke2011-05-069-256/+256
| | | | (Have fun mergining your stuff with this.)
* rustc: Add Rust intrinsic support to the crate metadata reader and writerPatrick Walton2011-05-051-3/+4
|
* Bring back "pred" syntax for writing predicates for checkTim Chevalier2011-05-054-12/+31
| | | | | | | | | | This commit reinstates the requirement that the predicate in a "check" must be a manifest call to a special kind of function declared with the new "pred" keyword instead of "fn". Preds must have a boolean return type and can only call other preds; they can't have any effects (as enforced by the typechecker). The arguments to a predicate in a check expression must be slot variables or literals.
* Check well-formedness of constraintsTim Chevalier2011-05-051-0/+14
| | | | | | Check that the operand in a constraint is an explicit name, and that the operands are all local variables or literals. Still need to check that the name refers to a pure function.
* Remove 'deprecated mutable...' from our codeMarijn Haverbeke2011-05-052-2/+2
| | | | This should make compilation a bit less noisy.
* Add #env syntax extension for plucking strings out of the compilation ↵Graydon Hoare2011-05-042-0/+75
| | | | environment.
* Add a structure for passing option flags around the compiler, put it in ↵Graydon Hoare2011-05-041-3/+2
| | | | session, and use it.
* rustc: Stub support for Rust intrinsicsPatrick Walton2011-05-032-0/+3
|
* Revert "Rename the "llvm" API to "llvm-intrinsic"" due to tinderbox bustagePatrick Walton2011-05-031-1/+1
| | | | This reverts commit 6871c245a67fab222eccc2a21dcb620d11d3b0d0.
* Start sketching --depend support in rustc.Graydon Hoare2011-05-032-1/+18
|
* Rename the "llvm" API to "llvm-intrinsic"Patrick Walton2011-05-031-1/+1
|
* Extract ast.is_exported from the resolve moduleBrian Anderson2011-05-021-0/+22
|
* Un-revert "Use different syntax for checks that matter to typestate", fixing ↵Patrick Walton2011-05-025-28/+38
| | | | | | the problem. This reverts commit d08b443fffb1181d8d45ae5d061412f202dd4118.
* Revert "Use different syntax for checks that matter to typestate"Graydon Hoare2011-05-025-38/+28
| | | | This reverts commit aa25f22f197682de3b18fc4c8ba068d1feda220f. It broke stage2, not sure why yet.
* Use different syntax for checks that matter to typestateTim Chevalier2011-05-025-28/+38
| | | | | | | | | | This giant commit changes the syntax of Rust to use "assert" for "check" expressions that didn't mean anything to the typestate system, and continue using "check" for checks that are used as part of typestate checking. Most of the changes are just replacing "check" with "assert" in test cases and rustc.
* Intern metadata while writing, shrink stage1 from 12mb to 5.7mb.Graydon Hoare2011-04-291-16/+49
|
* Support octal #fmt conversionsBrian Anderson2011-04-261-0/+7
|
* rustc: Pass a "type context" around instead of directly passing the type ↵Patrick Walton2011-04-251-45/+43
| | | | store; prep for removing type annotations
* rustc: Thread the type store through everything that needs to access type ↵Patrick Walton2011-04-221-1/+1
| | | | structures
* rustc: Switch @ty.t to ty.t so that we can change it to a uintPatrick Walton2011-04-222-8/+8
|