about summary refs log tree commit diff
path: root/src/comp/middle
AgeCommit message (Collapse)AuthorLines
2011-10-17Correct two more analyses of mutable? as mutableBrian Anderson-2/+2
I can't come up with test cases but this seems correct.
2011-10-17Don't allow assignment to mutable-wha?Brian Anderson-9/+9
2011-10-14Use trans_expr_save_in instead of trans_expr when appropriateMarijn Haverbeke-2/+2
This guards against passing a save_in destination to nil or bot-typed things.
2011-10-14Don't crash when reporting an unresolved import in the nil scopeMarijn Haverbeke-18/+22
Closes #1027
2011-10-13Remove an unnecessary visitor from rustc::middle::fn_usageBrian Anderson-8/+1
2011-10-13Fix a use of visit in rustc::middle::fn_usageBrian Anderson-1/+1
This was working by just skipping an AST node instead of doing the advertised check. I can't find a test case for it, but this is more correct.
2011-10-13Don't allow the value of generic bare functions to be takenBrian Anderson-5/+36
Issue #1038
2011-10-13Rename rustc::middle::unsafeck to fn_usageBrian Anderson-11/+11
I'm going to add further checks unrelated to unsafe. Issue #1038
2011-10-13Make trans_anon_obj properly thread its bcxMarijn Haverbeke-9/+3
Closes #893 Unfortunately, anon objs are still so broken as to be useless (fields don't work).
2011-10-13Properly fill single-variant zero-arg tag values.Marijn Haverbeke-9/+10
Closes #1034. Closes #1035.
2011-10-12reimplement some of the unsafe stuff which got lostNiko Matsakis-79/+65
- blocks inherit unsafety - remove the --check-unsafe flag - add unsafe annotations where needed to get things to compile
2011-10-12make compiler emit more than 1 error in the case of unsafeNiko Matsakis-23/+8
2011-10-12prohibit ptr deref unless in unsafe codeNiko Matsakis-2/+20
2011-10-12fix error msgNiko Matsakis-8/+2
2011-10-12add pass to check that unsafe fns cannot be used as valuesNiko Matsakis-0/+72
2011-10-12continue to annotate trans functions as unsafe where neccessaryNiko Matsakis-5/+7
2011-10-12continue to annotate trans functions as unsafe where neccessaryNiko Matsakis-3/+3
2011-10-12add unsafe tags into various points in the translation chainsNiko Matsakis-50/+92
and so forth
2011-10-12Add unsafe tags to usage of LLVM funcsNiko Matsakis-5/+7
2011-10-12make native functions markable as unsafe and incorporate thatNiko Matsakis-7/+10
into the type check
2011-10-12skip test, remove whitespaceNiko Matsakis-1/+1
2011-10-12correct lines over 78 charsNiko Matsakis-1/+3
2011-10-12enable unsafe checking but only with a flag --check-unsafeNiko Matsakis-11/+18
2011-10-12make treatment of unchecked/unsafe blocks more uniformNiko Matsakis-8/+7
also repair various errors in the parser related to such blocks. rename checked_blk to default_blk to reflect the fact that it inherits its purity from the surrounding context.
2011-10-12Add unsafe blocks, unsafe functions, and two rudimentary testsNiko Matsakis-4/+6
related to them
2011-10-12Extend the unchecked block stuff to allow unsafe blocks as well.Niko Matsakis-5/+30
2011-10-12expand purity to include unsafeNiko Matsakis-18/+23
2011-10-12Make build_environment and trans_bind_thunk GEP bound arguments the sameBrian Anderson-5/+6
These functions both use GEP_tup_like to get at the arguments bound to the environment, but they were starting from a different 'level' of the environment-box structure. Frighteningly, this was leading to them having different opinions of how the bound arguments were aligned in some cases.
2011-10-12Simplify copying of uniquesMarijn Haverbeke-27/+3
We can call take glue, rather than duplicating it inline.
2011-10-12[Renaming] str_to_float is now float::from_str, float_to_str is now ↵David Rajchenbach-Teller-2/+2
float::to_str
2011-10-11Remove the environment argument from bare functionsBrian Anderson-7/+35
Issue #1022
2011-10-11Don't allow bind to produce bare functionsBrian Anderson-1/+12
Issue #1022
2011-10-11Introduce ast::proto_bareBrian Anderson-1/+1
Issue #1022
2011-10-11[Move] Moved str_to_float, float_to_str from compiler to libDavid Rajchenbach-Teller-2/+2
2011-10-10Adjust function signatures to allow for vecs being immediateMarijn Haverbeke-15/+11
Some code was relying on vectors being implicitly by-reference (as non-immediate value). This adds the necessary &&-sigils. Closes #1021
2011-10-10Make vectors and strings immediates againMarijn Haverbeke-115/+94
There's no good reason to force them to be spilled anymore. Some pieces of trans become more elegant this way, and less stack allocs and load/stores are needed. Issue #1021
2011-10-10Make bcx_tcx-style accessors return by referenceMarijn Haverbeke-8/+8
2011-10-10Move type_is_immediate into ty.rsMarijn Haverbeke-16/+6
2011-10-10Don't spill immediates in order to drop themMarijn Haverbeke-21/+52
Issue #1012
2011-10-10Make free glue take a pointer to the heap part (box)Marijn Haverbeke-70/+67
This way, it can be used to drop values without first spilling them. Issue #1012
2011-10-09Fix bad float-type detection in transMarijn Haverbeke-6/+2
Closes #1017
2011-10-07Stop registering cleanups for types that don't need themMarijn Haverbeke-0/+3
2011-10-07Make it possible to have locals that don't live on the stackMarijn Haverbeke-149/+172
Local values that are not mutated, don't need to be cleaned up, and are immediate, don't need to be spilled. (All immediate args, and non-pointer immediate let locals.)
2011-10-07Forbid passing dynamically-sized types by valueMarijn Haverbeke-2/+11
Issue #1008
2011-10-07Actually pass parameters specified as by-val by valueMarijn Haverbeke-31/+49
Issue #1008
2011-10-07Give up on providing a by-value version of map, convert fold over toMarijn Haverbeke-12/+13
passing pointers by ref Issue #1008
2011-10-07Parse and typecheck by-value and by-ref arg specsMarijn Haverbeke-68/+90
Add sprinkle && throughout the compiler to make it typecheck again. Issue #1008
2011-10-06Fix problem with polymorphic return value being instantiated as nilMarijn Haverbeke-1/+1
Closes #1005
2011-10-05Tie up the last ends in destination-passing-conversionMarijn Haverbeke-33/+26
Closes #667
2011-10-05Make trans_lval lval-onlyMarijn Haverbeke-59/+15
Call trans_temp_lval if you want the old fallback-to-temporary behaviour. Issue #667