about summary refs log tree commit diff
path: root/src/comp/middle/tstate/auxiliary.rs
AgeCommit message (Collapse)AuthorLines
2011-12-16reorder args to the various vec, option fns so blk comes lastNiko Matsakis-1/+1
2011-12-14push changes through to get things compiling, if not running.Niko Matsakis-2/+3
2011-12-13Copy first batch of material from libstd to libcore.Graydon Hoare-3/+3
2011-12-08Allow binding of nested patternsMarijn Haverbeke-1/+1
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-07Remove stmt_crate_directive, it's vestigial and confusing.Graydon Hoare-4/+0
2011-11-30Box ast::path valuesMarijn Haverbeke-3/+3
It seems inefficient to copy them around. Let's measure whether that's actually > the case
2011-11-22Only warn about unreachable range patterns when appropriateMarijn Haverbeke-1/+0
Also simplifies the literal-munging, and moves it into ast_util Closes #1170
2011-11-21rustc: Remove abi from ast::native_modHaitao Li-1/+1
2011-11-17remove compile-command from local variable blocksNiko Matsakis-1/+0
2011-11-10Cleanup unused importsHaitao Li-10/+7
2011-10-21Change the way block calls are parsed, mark them as block-calls.Marijn Haverbeke-1/+1
This makes it possible to omit the semicolon after the block, and will cause the pretty-printer to properly print such calls (if pretty-printing of blocks wasn't so broken). Block calls (with the block outside of the parentheses) can now only occur at statement level, and their value can not be used. When calling a block-style function that returns a useful value, the block must be put insde the parentheses. Issue #1054
2011-10-21Move ast_util::pat_bindings over to new iter system.Marijn Haverbeke-2/+2
Issue #1056
2011-10-21Move hash table iteration over to block-taking functionsMarijn Haverbeke-8/+6
Issue #1056
2011-09-15Forbid assignment to by-reference bindingsMarijn Haverbeke-4/+5
Issue #918
2011-09-15Add representation for by-ref let bindingsMarijn Haverbeke-2/+4
Issue #918
2011-09-14Rename ast::controlflow to ast::ret_styleMarijn Haverbeke-3/+3
It will include information about returning by alias.
2011-09-12Factor imports mindlessly.Graydon Hoare-34/+12
2011-09-12Pretty-print for new arg-mode syntaxMarijn Haverbeke-1/+1
2011-09-12Reformat for new mode syntax, step 1Marijn Haverbeke-117/+113
Long lines were fixed in a very crude way, as I'll be following up with another reformat in a bit.
2011-09-12Make the names of the arg mode tag reflect their (revised) meaningMarijn Haverbeke-1/+1
2011-09-02Reformat. Issue #855Brian Anderson-86/+81
2011-09-01Rename std::istr to std::str. Issue #855Brian Anderson-1/+1
2011-09-01Remove std::str. Issue #855Brian Anderson-1/+0
2011-09-01No, not all fn constraints have the same args as the fn does, in the same ↵Tim Chevalier-4/+18
order... derp! Closes #862
2011-09-01Remove various istr conversions. Issue #855Brian Anderson-4/+4
2011-09-01Make resolve recognize upvarsMarijn Haverbeke-33/+10
Upvars are now marked with def_upvar throughout, not just when going through freevars::lookup_def. This makes things less error-prone. One thing to watch out for is that def_upvar is used in `for each` bodies too, when they refer to a local outside the body.
2011-09-01Store arg mode and objfield mutability in their defMarijn Haverbeke-4/+4
2011-08-27Convert rustc::driver::session to istrs. Issue #855Brian Anderson-21/+21
2011-08-27Convert pretty-printer to istrs. Issue #855Brian Anderson-10/+10
2011-08-27Convert rustc::util to istrs. Issue #855Brian Anderson-2/+3
2011-08-27Convert the rest of rustc::middle to istrs. Issue #855Brian Anderson-38/+39
2011-08-27Convert ast::ident to istr. Issue #855Brian Anderson-7/+12
2011-08-27Convert std::int to istrs. Issue #855Brian Anderson-5/+9
2011-08-27Convert std::uint to istrs. Issue #855Brian Anderson-1/+2
2011-08-26Let typestate constraints mention pattern-bound varsTim Chevalier-5/+10
2011-08-22Move functions from syntax::ast to syntax::ast_utilBrian Anderson-0/+1
This leaves syntax::ast just defining the AST, which strikes me as somewhat nicer
2011-08-20ReformatBrian Anderson-103/+94
This changes the indexing syntax from .() to [], the vector syntax from ~[] to [] and the extension syntax from #fmt() to #fmt[]
2011-08-18Remove or _-prefix all unused function argumentsMarijn Haverbeke-5/+5
This should make the compilation process a bit less noisy.
2011-08-16Port the compiler to the expr foo::<T> syntax.Erick Tryzelaar-5/+5
2011-08-16Port the compiler to foo<T> decl syntax.Erick Tryzelaar-3/+3
2011-08-16Port the compiler to the typaram foo<T> syntax.Erick Tryzelaar-22/+22
2011-08-16Rename std::ivec to std::vecBrian Anderson-13/+13
2011-08-15The wonky for...in... whitespace was bothering me. Sorry!Lindsey Kuper-23/+23
2011-08-09Port the compiler to the ivec type [T] syntax.Erick Tryzelaar-48/+48
2011-08-08Implement typestate checking for move-mode args. Un-XFAIL ↵Graydon Hoare-7/+38
compile-fail/move-arg.rs.
2011-08-03Make ast::pat_bindings an iteratorMarijn Haverbeke-1/+1
And use it to get rid of some repetetive code
2011-08-01Handle bang functions correctly in typestateTim Chevalier-6/+46
The logic for how the "returns" constraint was handled was always dodgy, for reasons explained in the comments I added to auxiliary::fn_info in this commit. Fixed it by adding distinct "returns" and "diverges" constraints for each function, which are both handled positively (that is: for a ! function, the "diverges" constraint must be true on every exit path; for any other function, the "returns" constraint must be true on every exit path). Closes #779
2011-08-01Partially implement destructuring localsMarijn Haverbeke-6/+11
You can now say let {bcx, val} = some_result_returner(); Similar for loop variables. Assigning to such variables is not safe yet. Function arguments also remain a TODO.
2011-07-29Refactor typestate code involving stmt_declsTim Chevalier-0/+21
To handle multiple-LHS declarations with initializers properly, I changed seq_states to take a list of expressions paired with optional names, not just a list of expressions. Then, the same logic that handles ordered lists of subexpressions everywhere else can handle multi- declarations.
2011-07-29Add in some missing cases for typestate with closures.Michael Sullivan-0/+3