about summary refs log tree commit diff
path: root/src/comp/middle
AgeCommit message (Collapse)AuthorLines
2012-01-06Add some basic comments to trans_imp.rsMarijn Haverbeke-0/+30
2012-01-06Make binding of fns with bounded type parameters workMarijn Haverbeke-5/+15
Interns non-static dicts to heap-allocated equivalents so that they no longer have stack scope. Closes #1436
2012-01-06Support interface casting in the typecheckerMarijn Haverbeke-6/+34
Issue #1437
2012-01-06Statically allocate static dictsMarijn Haverbeke-24/+109
Issue #1436
2012-01-06Fix bug in method type parameter passingMarijn Haverbeke-5/+5
It would occasionally pass the wrong type parameter, when calling a generic method from a generic impl on a bounded param type.
2012-01-05rustc: Allow the test runner to run unexported testsBrian Anderson-7/+29
2012-01-05Use precise return type to allocate retslot in trans_argsMarijn Haverbeke-4/+11
Using type_of_or_i8 did, predictably, allocate an i8 for a type parameter, which leads to memory corruption and general confusion. Closes #1443
2012-01-05require a non-semi expr acting as a stmt to have unit return typeNiko Matsakis-17/+23
2012-01-05Merge branch 'master' into kmathStefan Plantikow-12/+8
Conflicts: src/libcore/float.rs
2012-01-05Moved generic float::min, max to core::math and cleaned up some importsStefan Plantikow-1/+1
2012-01-05Switch to new param kind bound syntaxMarijn Haverbeke-6/+6
And remove support for the old syntax
2012-01-05Clean up some FIXMEs related to implsMarijn Haverbeke-6/+2
2012-01-05Get external interfaces / impls workingMarijn Haverbeke-8/+13
Issue #1227
2012-01-05Write the iface type of an impl in the crate dataMarijn Haverbeke-101/+84
Also, move checking of ifaces into the collect phase of typeck to give further passes some guarantees. Issue #1227
2012-01-05Remove ty::bind_params_in_typeMarijn Haverbeke-56/+20
It does nothing that substitute_type_params can't do better.
2012-01-05Add more item types to the ast_map so the test suite can build with debug info.Josh Matthews-1/+9
2012-01-04Use the right types for methods in trans_implMarijn Haverbeke-12/+5
This prevents misalignment between function and argument types in corner cases.
2012-01-04Reformat typestate error messages so as not to confuse emacs compilation modeTim Chevalier-3/+5
2012-01-04Prevent typenames in param bounds from resolving to their own paramMarijn Haverbeke-19/+38
I.e. fn foo<T: seq<T>>(...). This leads to weird circularities that seem to never make any sense, so it seems prudent to forbid it. Issue #1227
2012-01-04Add visit_ty_params to visit.rsMarijn Haverbeke-21/+6
And use it to make typechecking of bounds less error-prone.
2012-01-04Properly typecheck and compile invocations of generic methods.Marijn Haverbeke-163/+225
Aligning the type parameters of the ifaces, impls, and methods correctly in typeck is almost brain surgery. Seems to work now for everything I threw at it, but might still break in other corner cases. Issue #1227
2012-01-03Add missing ty_constr cases to trans::type_of_inner and ty::fold_ty.Tim Chevalier-0/+11
Closes #970
2012-01-03Allow tail expressions even in no_value blocks. Type checkerNiko Matsakis-13/+28
will guarantee they have unit type.
2012-01-03Merge pull request #1392 from Lenny222/listBrian Anderson-2/+6
list: add "is_not_empty" requirement to "head" and "tail" (analogous to "vec")
2012-01-03Make resolution of dictionaries on bounded params workMarijn Haverbeke-6/+11
Issue #1227
2012-01-03Wire in resolution of param bounds for method callsMarijn Haverbeke-15/+39
Issue #1227
2012-01-03More work on translating dictionary-passingMarijn Haverbeke-158/+381
Reached a point where simple uses of interfaces without bounds work. Issue #1227
2012-01-02Properly handle expression blocks in kind.rsMarijn Haverbeke-3/+10
It was only noticing them in expr_block form, not as function bodies. Closes #1390
2012-01-02Write out vtables for interface implementationsMarijn Haverbeke-13/+78
Issue #1227
2012-01-02Drop two useless sub-passes from transMarijn Haverbeke-98/+59
Neither collect_tag_ctors nor the second pass in collect_items needed to be separate passes. Also remove obsolete obj_methods table kludge.
2012-01-02Create a trans_impl moduleMarijn Haverbeke-16/+19
2012-01-02Key tcx.ty_param_bounds on node_ids, not def_idsMarijn Haverbeke-8/+10
This makes it clearer that it's only valid for local nodes.
2012-01-02Box arrays of parameter boundsMarijn Haverbeke-37/+36
2012-01-02Pass bounds to trans::type_of_fnMarijn Haverbeke-50/+65
2012-01-02More resolving and typechecking of bounded type parameters.Marijn Haverbeke-55/+210
Extern interfaces still don't get recognized. Issue #1227
2012-01-02Check that type parameter bounds are interface typesMarijn Haverbeke-33/+73
Issue #1227
2012-01-02Make last-use pass properly handle closed-over variablesMarijn Haverbeke-3/+18
Closes #1399
2012-01-01freebsd supportUser Jyyou-0/+2
2011-12-29split proto from fn_decl, as not all fn_decls know the proto.Niko Matsakis-105/+114
this will address the (crashing) new test added.
2011-12-29list: use predicate to enforce non-empty requirementLenny222-2/+6
2011-12-29Box ty_param_bounds_and_tyMarijn Haverbeke-21/+21
It contains a vector, which shouldn't be copied all the time.
2011-12-28On second thought, re-land pull request #1385 with backquotes; easier to ↵Graydon Hoare-27/+27
grep, can change in the future.
2011-12-28Merge pull request #1385 from Lenny222/quotesGraydon Hoare-29/+32
Use singlequotes in the typechecker error messages too, to distinguish code and English
2011-12-28Move the kind datatype to middle::tyMarijn Haverbeke-22/+53
The AST no longer references it.
2011-12-28Change representation of type params to handle interface boundsMarijn Haverbeke-96/+151
Issue #1227
2011-12-28Made matching machine types equal to float, int, uint (fixes #1376)Stefan Plantikow-1/+22
2011-12-25Use singlequotes in the typechecker too, to distinguish code and EnglishLenny222-29/+32
2011-12-23Go back to a single visit_fn function in visit.rsMarijn Haverbeke-52/+54
2011-12-23Get rid of visit_fn_block in visit.rsMarijn Haverbeke-12/+1
It seems redundant and error-prone.
2011-12-23Check impls methods against the type of their iface.Marijn Haverbeke-34/+77