about summary refs log tree commit diff
path: root/src/comp
AgeCommit message (Collapse)AuthorLines
2011-07-11Fix bind to work with boxed arguments with type parameters.Michael Sullivan-2/+6
This still doesn't work with bare fn arguments with type parameters.
2011-07-11Implement record patternsMarijn Haverbeke-2/+164
Closes #469.
2011-07-11Move visit to newtype-style nominal typeMarijn Haverbeke-129/+126
This makes getting the function fields out of the visitor less cumbersome and more efficient (no take/drop).
2011-07-11Output a meaningful error when too few or too many type parameters givenMarijn Haverbeke-3/+11
Closes #619
2011-07-11Implement or-patterns in case clausesMarijn Haverbeke-40/+129
You can now say expr_move(?dst, ?src) | expr_assign(?dst, ?src) { ... } to match both expr_move and expr_assign. The names, types, and number of bound names have to match in all the patterns. Closes #449.
2011-07-11Spill instead of copy when binding a pattern that's only a var bindingMarijn Haverbeke-17/+11
The alias rules guarantee that the alt-ed value will outlive the binding's last use, so this is safe. This is a preparation for or-patterns. Joining scoped bindings seems like it would get messy.
2011-07-10Add a missing case so nbody.rs can ppJesse Ruderman-0/+1
2011-07-10Export noop_fold_expr so the fuzzer can use itJesse Ruderman-0/+1
2011-07-10Make #fmt work from inside std. Issue #175Brian Anderson-10/+25
At long last, this patch makes #fmt usable from inside the standard library. The way it does it us very hackish, but at least it works now.
2011-07-10Use more encapsulation for metadata::cstoreBrian Anderson-25/+69
2011-07-09rustc: Make rust-intrinsics take an explicit return pointerPatrick Walton-23/+48
2011-07-09Generate code to load a crate's tests into the std test runner. Issue #428Brian Anderson-37/+218
2011-07-09Collect functions that look like unit tests. Issue #428Brian Anderson-3/+31
2011-07-09Track the path as we fold over the AST looking for unit tests. Issue #428Brian Anderson-4/+21
2011-07-08Propagate constraints through copy, move, and swapTim Chevalier-133/+442
Assignments and moves with a simple local variable reference on the RHS now propagate any typestate constraints the RHS was involved in to the LHS. Swaps where both sides are local variables exchange the constraints. This was a pain in the butt and I'm still not proud of the resulting code. Needs refactoring like whoa.
2011-07-08Minor refactoringTim Chevalier-3/+11
2011-07-08Alias-ify some prettyprinting functionsTim Chevalier-3/+4
2011-07-08Improve impossible-case handling in ty::get_element_typeTim Chevalier-4/+5
2011-07-08Improve the error message for import glob collisions. Closes #482Brian Anderson-17/+31
Instead of noting where the imported things were defined, note where they were imported. This is more useful and avoids issue #482.
2011-07-08rustc: Use interior vectors for the union-find in rustcPatrick Walton-21/+24
2011-07-08rustc: Fix a level-of-indirection problem by using size_of() to compute ↵Patrick Walton-4/+2
dynamically sized interior vector element sizes instead of field_of_tydesc()
2011-07-08Decode types across multiple crates. Closes #632Brian Anderson-27/+71
2011-07-08Nicer pretty-printing for anon objs. Closes #499.Lindsey Kuper-3/+50
(Incidentally, what's the right way to test changes to the pretty-printer? There has to be a better way than what I did, which was to log_err the results of expr_to_str as exprs passed through trans and glance at the output.)
2011-07-08Recursively load dependencies of external crates. Issue #632Brian Anderson-5/+37
2011-07-08Refactor load_library_crate and resolve_crateBrian Anderson-14/+23
2011-07-08Add a map from external cnums to local cnums in cstore::crate_metadataBrian Anderson-3/+14
Once populated, this will allow us to load type info for types defined in external crates referenced by other external crates.
2011-07-08Extract resolve_crate from creader::visit_view_itemBrian Anderson-8/+14
2011-07-08Try to use static crate if we cannot find the dynamic one. This supportsRafael Ávila de Espíndola-3/+16
the common case of wanting to link statically with the project's libraries but dynamically with the system ones.
2011-07-08Add just enough logic to the driver so that we can link std statically.Rafael Ávila de Espíndola-2/+16
2011-07-08Fix newlines when outputting crate attributes with --lsBrian Anderson-2/+2
2011-07-08Encode/decode a crate's externel dependencies. Issue #632Brian Anderson-1/+80
The encoding is very simple right now, just the crate name. Ultimately this won't be enough for our versioning needs, but it should fill our immediate need of being able to correlate encoded crate numbers to actual crates.
2011-07-08rustc: Do dynamic size calculations properly when concatenating interior ↵Patrick Walton-23/+40
vectors. Closes #640.
2011-07-08Don't export tyencode from the metadata moduleBrian Anderson-53/+64
This involves pulling the type_abbrev cache out of crate_ctxt
2011-07-08Cleanup decoding and crate searchingBrian Anderson-7/+16
2011-07-08Make the interface to metadata::csearch more consistentBrian Anderson-21/+25
2011-07-08Remove unused functions from metadata::csearchBrian Anderson-9/+0
2011-07-08Extract various dependencies from metadata::decoder to metadata::csearchBrian Anderson-16/+20
2011-07-08Begin splitting metadata::decoder into decoding and crate search modulesBrian Anderson-14/+57
2011-07-08Replace various ints with ast::crate_numsBrian Anderson-13/+17
2011-07-08Move external crate/lib resolution to its own passBrian Anderson-2/+2
The scope of external crate reading is beyond the resolve pass now, as it builds up tables of information needed for several different purposes.
2011-07-08Move crate_map from resolve to cstoreBrian Anderson-58/+66
2011-07-08Remove non-existant export from metadata::decoderBrian Anderson-1/+0
2011-07-08Comment creaderBrian Anderson-28/+29
2011-07-08Comment cstoreBrian Anderson-0/+3
2011-07-08Move used_link_args from session to cstoreBrian Anderson-10/+12
2011-07-08Move used_libraries from session to cstoreBrian Anderson-22/+21
2011-07-08Move used_crate_files from session to cstoreBrian Anderson-25/+24
2011-07-08Replace the crate cache in session with the one in cstoreBrian Anderson-16/+17
2011-07-08Introduce metadata::cstoreBrian Anderson-1/+43
I intend for this to be the location for storing all the data retrieved by creader, most of which is currently in the session.
2011-07-08Ignore current scope when resolving self-shadowing importsMarijn Haverbeke-18/+15
That is, for example, import x::y::x, which defines a local x, and thus wouldn't be able to find x::y anymore. Closes issue #624