about summary refs log tree commit diff
path: root/src/comp/middle
AgeCommit message (Collapse)AuthorLines
2011-12-18Only look for a matching method when normal field access failsMarijn Haverbeke-86/+90
We should probalby warn when defining a method foo on {foo: int} etc. This should reduce the amount of useless typevars that are allocated. Issue #1227
2011-12-18Improve efficienty of impl cache in resolveMarijn Haverbeke-10/+15
And fix a bug where importing anything from an external module would import all impls in the module. Issue #1227
2011-12-16Fix arg order for vec::map callMarijn Haverbeke-4/+5
2011-12-16Finish resolving and calling of crate-external implsMarijn Haverbeke-48/+86
Issue #1227
2011-12-16Reserve node_id 0 for the crate top-level moduleMarijn Haverbeke-9/+11
And define a const to refer to it.
2011-12-16revoke cleanup of sendable closure once construction completesNiko Matsakis-0/+1
2011-12-16extend with ty_send_type and ty_opaque_closureNiko Matsakis-2/+7
2011-12-16rename iter2 to iteri to match typical conventionNiko Matsakis-3/+3
2011-12-16reorder args to the various vec, option fns so blk comes lastNiko Matsakis-33/+34
2011-12-16Make polymorphic impl methods workMarijn Haverbeke-43/+67
Something will still have to be done to the AST to make it possible to say `x.foo::<int>()`, since currently field access never allows type parameters. Issue #1227
2011-12-16Improve resolution of implsMarijn Haverbeke-18/+33
Issue #1227
2011-12-16Make uses of self in impls compileMarijn Haverbeke-176/+133
Get rid of expr_self_call, introduces def_self. `self` is now, syntactically, simply a variable. A method implicitly brings a `self` binding into scope. Issue #1227
2011-12-16Get very simple impl method calls to compileMarijn Haverbeke-56/+98
Resolution is still dumb, and no self support yet.
2011-12-16Get a very primitive form of typechecking/resolving to work for implsMarijn Haverbeke-62/+93
No conflict resolution or polymorphism yet. Issue #1227
2011-12-16Parse and resolve implementations.Marijn Haverbeke-66/+198
Issue #1227
2011-12-16rustc: Implement non-renamed re-export across cratesHaitao Li-23/+60
First patch for issue #1115. Not yet ready for re-exported modules which are renamed when importing them.
2011-12-15rustc: Box tag variants to avoid copiesBrian Anderson-4/+4
2011-12-15rustc: Box the vectors returned from ty::tag_variantsBrian Anderson-37/+39
2011-12-15rustc: Cache results of ty::tag_variantsBrian Anderson-5/+16
2011-12-15restore old buggy behavior where n_obj_params is always 0 for fnsNiko Matsakis-1/+9
2011-12-15massive refactor of how closures workNiko Matsakis-498/+565
2011-12-15resurrect tps_fn() and put it to use this time.Niko Matsakis-3/+5
2011-12-15Don't try to look up crate modules in ext_map in resolveMarijn Haverbeke-1/+1
Closes #1305
2011-12-14remove unused tps_fn(); comment out unused varNiko Matsakis-4/+3
2011-12-14refactor trans into trans_closure; restore original closure reprNiko Matsakis-413/+439
2011-12-14treat native fns as shared closuresNiko Matsakis-0/+1
2011-12-14insert a field into the closure storing number of ty descsNiko Matsakis-16/+22
2011-12-14pull out the code from iter_structural_ty for handling functions,Niko Matsakis-29/+55
as we will have to do very careful and non-generic things
2011-12-14treat different kinds of closures differentlyNiko Matsakis-19/+53
2011-12-14translate unique closure env betterNiko Matsakis-25/+49
2011-12-14remove unused optionsNiko Matsakis-15/+5
2011-12-14restore old functionality for nowNiko Matsakis-7/+25
2011-12-14get basic code generation working, clone type descs for lambda[send]Niko Matsakis-19/+52
2011-12-14make fact that trans'ing lvar does not modify bcx explicit in typeNiko Matsakis-12/+19
2011-12-14sendable functions now "work", meaning pass through trans/typestateNiko Matsakis-2/+7
but they do not generate correct code
2011-12-14push changes through to get things compiling, if not running.Niko Matsakis-36/+40
2011-12-14first attempt, not happy with itNiko Matsakis-34/+25
2011-12-14define ty and update parser for sendable lambdasNiko Matsakis-0/+1
2011-12-13Copy first batch of material from libstd to libcore.Graydon Hoare-113/+120
2011-12-13Reorganize some code in typeckMarijn Haverbeke-305/+233
This should cut down a lot on the amount of closures being allocated, and removes some duplicated code.
2011-12-12rustc: build versioned library with hash in its nameHaitao Li-2/+2
Also updated build to install versioned libraries and added a few missing actions for `make clean`.
2011-12-12Handle external-crate case when printing full unresolved pathsMarijn Haverbeke-5/+13
Closes #1283
2011-12-08rustc: Determine the crate type (lib/bin) in the session, not session optsBrian Anderson-5/+5
This is in preparation for adding a #[crate_type] attribute
2011-12-08Allow binding of nested patternsMarijn Haverbeke-67/+97
See src/test/run-pass/nested-patterns.rs for some examples. The syntax is boundvar@subpattern Which will match the subpattern as usual, but also bind boundvar to the whole matched value. Closes #838
2011-12-08Stop passing around some unused information in typeckMarijn Haverbeke-27/+7
2011-12-08Consider variant constructors pure functions for the purpose of purity checkingMarijn Haverbeke-2/+3
Closes #1269
2011-12-07Remove stmt_crate_directive, it's vestigial and confusing.Graydon Hoare-11/+0
2011-12-07Check for literals that are out of range for their typeMarijn Haverbeke-1/+18
2011-12-07Change literal representation to not truncateMarijn Haverbeke-349/+167
Also shuffles around the organization of numeric literals and types, separating by int/uint/float instead of machine-vs-non-machine types. This simplifies some code. Closes #974 Closes #1252
2011-12-07repair more hash functionsNiko Matsakis-15/+15