aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* rustc: Write nil types into the node type table wherever plain_ann() is usedHEADmasterPatrick Walton2011-05-134-44/+101
|
* 'with' no longer a token; whitespace police.Lindsey Kuper2011-05-133-18/+15
| | | | | Plus renaming the anonymous objects test to a more descriptive name, and XFAILing it because it doesn't work yet.
* More anon obj work; whitespace police in middle::foldLindsey Kuper2011-05-132-32/+52
| | | | | | Passing args to middle::fold::fold_expr_anon_obj by reference to be consistent with the other folds; adding a dummy fold_expr_anon_obj to typeck to be filled in later.
* Use new module namespace syntax.Lindsey Kuper2011-05-134-84/+76
|
* More work toward anonymous objects.Lindsey Kuper2011-05-134-8/+15
|
* Bug fixes.Lindsey Kuper2011-05-134-21/+25
| | | | | 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-135-14/+100
| | | | 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-133-0/+96
|
* Add support for 'T' transition snapshots, which are identical to S snapshots ↵Graydon Hoare2011-05-134-8/+29
| | | | except they tell the makefile to stop at stage1.
* rustc: Move replace_expr_type() from ty to typeck, as it's only used in the ↵Patrick Walton2011-05-132-45/+52
| | | | latter
* rustc: Fix long lines in typeck.rsBrian Anderson2011-05-131-1/+2
|
* rustc: Get ann_to_type_params() on board the ↵Patrick Walton2011-05-131-7/+7
| | | | ann_to_ty_param_substs_opt_and_ty() train
* rustc: Make all type lookups go through the one ↵Patrick Walton2011-05-131-44/+22
| | | | ty::ann_to_ty_param_substs_opt_and_ty() function
* rustc: Write types contained in "trivial annotations" to the tablePatrick Walton2011-05-131-45/+135
|
* rustc: Change ty::triv_ann() to take a node ID instead of a full annotationPatrick Walton2011-05-132-85/+118
|
* rustc: lowercase the link and link::write modulesBrian Anderson2011-05-135-17/+17
|
* Slight adjustments to shape, rename to type_glue.rs.Graydon Hoare2011-05-133-99/+105
|
* rustc: Add write_type() wherever ann_types are written, except for triv_ann()Patrick Walton2011-05-132-15/+56
|
* Remove reserved word tests (since reserved words were removed)Marijn Haverbeke2011-05-137-35/+0
| | | | | | | | Ping me if you disagree, but I think that in a language that's as in-flux as rust currently is, it is silly to try and enforce a single future-compatibility. The reserved words didn't work well with the parser refactor, so I dropped them for the time being. We can, eventually, bring them back as type-only reserved words.
* 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-136-1152/+612
| | | | | | 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.
* rustc: Fix the type of node_types; stub the write_type functionPatrick Walton2011-05-132-7/+16
|
* rustc: Remove a minor rustboot workaround in ↵Patrick Walton2011-05-131-9/+4
| | | | typeck::resolve_local_types_in_block()
* Fix naming of libc that was mangled by recent module changesBrian Anderson2011-05-133-5/+5
| | | | | It doesn't appear that rustc makes use of these strings so it didn't actually break anything yet.
* rustc: Make typeck::instantiate_path() not return an annotationPatrick Walton2011-05-131-9/+16
|
* Implement module namespacesMarijn Haverbeke2011-05-134-73/+78
| | | | | | | Module names no longer clash with type and value names. The tokenizer/parser still needs to be taught to be more careful in identifying keywords, so that we can use 'str' and 'vec' and so as module names.
* Extend crate format to allow multiple definitions for a single nameMarijn Haverbeke2011-05-134-113/+85
| | | | | The type/value namespace distinction pretty much works now. Module namespace is up next.
* Make module indices hold a list of itemsMarijn Haverbeke2011-05-132-42/+100
| | | | | This way, they can support having both a type and a value of the same name.
* Move capture checking into resolve.rsMarijn Haverbeke2011-05-139-141/+74
| | | | | Drops capture.rs. The new algorithm also checks for captures function arguments and obj fields.
* Change resolve to use walk instead of foldMarijn Haverbeke2011-05-132-104/+164
| | | | | | Possibly, at some point, we should add a state-passing variant of walk, or a wrapper that makes it easier to thread state. (See the repetetive pop_state_for_* functions in this commit.)
* Ensure visit_ty is called on type parameters during walkMarijn Haverbeke2011-05-131-2/+25
|
* Add visit_arm and visit_method to walk.rsMarijn Haverbeke2011-05-131-3/+16
| | | | | The resolver needs to update its state for individual arms and methods.
* Change fuzzer to match new module standardsBrian Anderson2011-05-123-4/+4
|
* Rename std.extfmt.CT to std.extfmt.RT to ct and rtBrian Anderson2011-05-122-34/+288
| | | | | Temporarily duplicate the entire RT module, leaving it with the old name to accomodate the stage0 compiler. Will be removed after the next snapshot.
* rustc: Flatten recursive vectors in trans::simplify_type(). Prevents an ↵Patrick Walton2011-05-122-0/+8
| | | | infinite loop.
* rustc: Beginnings of a "shape" module to convert types to shapesPatrick Walton2011-05-122-0/+99
|
* rustc: Make ty::expr_ann() terserPatrick Walton2011-05-121-109/+37
|
* rustc: Pass a node type table around, unused as of yetPatrick Walton2011-05-124-154/+218
|
* Add stats option and lazily emit glue.Graydon Hoare2011-05-123-86/+269
|
* etc: Update rust.vim with new keywords; color types differently from keywordsPatrick Walton2011-05-121-7/+35
|
* Add snap-stageN targets.Graydon Hoare2011-05-123-6/+13
|
* Register new snapshots for incompatible-syntax transition.Graydon Hoare2011-05-121-0/+5
|
* Fix mistaken replacements in error-pattern comments in testsMarijn Haverbeke2011-05-1225-25/+25
|
* Downcase std modules again, move to :: for module dereferencingMarijn Haverbeke2011-05-12168-7652/+7687
| | | | 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-129-111/+41
| | | | 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-1214-481/+516
| | | | | | | | | | | | | 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-126-202/+224
| | | | | | 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.