about summary refs log tree commit diff
path: root/src/comp/middle
AgeCommit message (Collapse)AuthorLines
2012-02-17Clean up some of trans using block combinatorsMarijn Haverbeke-904/+791
`with_scope` and `with_cond` can be used to wrap a piece of code in a scope block, or conditionalize it on a value, without doing all the context-creation and jumping by hand. Also renames @block_ctxt to block to reduce noise.
2012-02-17Simplify get_tydesc's APIMarijn Haverbeke-44/+22
2012-02-17Clean up block_ctxt representationMarijn Haverbeke-140/+131
2012-02-16More rigorous reuse of cleanup sequencesMarijn Haverbeke-153/+170
In both landing pads and break/cont/ret unwinding. Closes #300
2012-02-16Remove to_zero/to_revoke kludgeMarijn Haverbeke-71/+25
It is much simpler to just move by_move args into a temporary alloca.
2012-02-15make mut a keyword synonymous with mutableNiko Matsakis-130/+142
first step towards issue #1273
2012-02-15move shape into transNiko Matsakis-0/+0
2012-02-15Rewrite exhaustiveness checkerMarijn Haverbeke-72/+119
Issue #352 Closes #1720 The old checker would happily accept things like 'alt x { @some(a) { a } }'. It now properly descends into patterns, checks exhaustiveness of booleans, and complains when number/string patterns aren't exhaustive.
2012-02-15Replace some explicit fails with 'alt check' invocationsMarijn Haverbeke-78/+37
2012-02-15Fix bug in safe-reference checkerMarijn Haverbeke-35/+23
At some point, a refactor broke the code that handled local declarations to no longer descend into the initializer expressions. Closes #1846
2012-02-15Support 'alt check' syntaxMarijn Haverbeke-19/+16
It is only a way to flag an alt as intentionally non-exhaustive right now. Issue #1679
2012-02-14rustc: Translate crust functionsBrian Anderson-84/+263
2012-02-14rustc: Add trans_crust_fn. Don't do anything special yetBrian Anderson-6/+15
2012-02-14rustc: Extract native function generation into trans::nativeBrian Anderson-183/+193
2012-02-14rustc: Translate the value of crust functionsBrian Anderson-0/+13
2012-02-14rustc: Typecheck crust functions as *u8Brian Anderson-0/+12
2012-02-14rustc: Add crust functions to the ASTBrian Anderson-2/+2
2012-02-14Fix double-cleanup bug in patch 57c7645cb83e609ffMarijn Haverbeke-1/+3
Things would run fine (probably by sheer luck) but valgrind didn't approve.
2012-02-14Allow static method calls to be boundMarijn Haverbeke-69/+87
This allows you to take the value of, for example, `[1].len`, or bind it with `bind x.map(_)` syntax. I'm holding off on implementing this for dynamic methods (those on bounded type parameters or iface types) until it's clearer what we will do with monomorphization. Issue #435
2012-02-14Add [X].len() to core, use it in trans modulesMarijn Haverbeke-79/+76
2012-02-13Track purity/unsafety of iface and impl methodsMarijn Haverbeke-34/+50
Closes #1807
2012-02-13Fix bug in handling of block functions in last-use analysisMarijn Haverbeke-2/+6
It would fail to start out with a fresh scope when going over a loop or block function for the second time, and thus not recognize last uses of locals defined inside the block. Closes #1818
2012-02-13correct error message and add to testNiko Matsakis-1/+1
2012-02-13do not fail if iface/impl method have different number of parametersNiko Matsakis-0/+7
2012-02-13remove leading ::, new testsNiko Matsakis-1/+1
2012-02-13Make sure simplify_type simplifies all pointer typesMarijn Haverbeke-19/+17
This is needed to prevent infinite recursion when computing the shape of an enum type that contains pointers to itself. Closes #1821
2012-02-12(core::str) rename byte_len -> len_bytes and rename char_len -> lenKevin Cantu-6/+6
2012-02-11core: Change the argument order for vec::contains, vec::countBrian Anderson-7/+7
2012-02-11core: Rename vec::member to vec::contains to match str modBrian Anderson-7/+7
2012-02-11correct fully qualified type names to include the crate; add tests (take 2)Niko Matsakis-1/+1
This reverts commit fc023d91c77f468211ba9f7681b4d2a6469aac74.
2012-02-11Revert prior commit until I have time to track down the valgrind errorNiko Matsakis-1/+1
This reverts commit 2ec3a0b60833736a3c0d805768885b4392c36100.
2012-02-10correct fully qualified type names to include the crate; add testsNiko Matsakis-1/+1
fixes #1745
2012-02-10create serialization lib and update serializer to use itNiko Matsakis-1/+1
2012-02-10use absolute names when pretty-printing typesNiko Matsakis-25/+33
2012-02-10put serializer into the build and encode full item pathsNiko Matsakis-0/+53
2012-02-10create serializer project which autogenerates serialization codeNiko Matsakis-1/+15
2012-02-10Remove dead codeNiko Matsakis-37/+0
2012-02-10Remove a vestige of return-by-referenceMarijn Haverbeke-53/+29
2012-02-10Fix mistake in typechecker error refactorMarijn Haverbeke-1/+1
2012-02-10Add compile-fail tests for interfaces/implsMarijn Haverbeke-9/+9
Closes #1475
2012-02-10Represent boxed ifaces in a way similar to functionsMarijn Haverbeke-284/+66
They are now a (dictptr, box) pair, where box is a regular boxed representation of the inner type. This cuts down on some special case code. Also removes some code from trans::base that was moved to shape but then somehow restored in trans::base through a bad merge. Starts on issue #1567
2012-02-10Complain about multiple methods in scope only onceMarijn Haverbeke-3/+6
Closes #1803
2012-02-09suppress warningTim Chevalier-2/+2
2012-02-09Further WIP on classesTim Chevalier-6/+58
Changes to resolve and typeck. Still nothning working yet.
2012-02-09Fix bug in decoding of method metadataMarijn Haverbeke-1/+1
2012-02-09Fix various bugs in monomorphizationMarijn Haverbeke-64/+81
Enough to be able to compile librustc with --monomorphize. Issue #1736
2012-02-09Remove some pointless importsMarijn Haverbeke-51/+7
2012-02-09Increase precedence of as operatorMarijn Haverbeke-4/+3
Closes #1717
2012-02-09Monomorphize methods and bounded parametersMarijn Haverbeke-39/+143
Issue #1736
2012-02-08A bit more WIP on classes, and some cleanup in resolveTim Chevalier-83/+131