about summary refs log tree commit diff
path: root/src/comp/syntax
AgeCommit message (Collapse)AuthorLines
2011-09-01Make #fmt and #ifmt synonymous. Issue #855Brian Anderson-13/+15
2011-09-01Rename std::istr to std::str. Issue #855Brian Anderson-79/+79
2011-09-01Parse "",str as istrs. Pretty print istrs as "",str. Issue #855Brian Anderson-11/+4
2011-09-01Remove std::str. Issue #855Brian Anderson-10/+0
2011-09-01Allow istrs as patterns. Issue #855Brian Anderson-0/+16
2011-09-01Remove various istr conversions. Issue #855Brian Anderson-10/+9
2011-09-01Remove the estr #fmt. Issue #855Brian Anderson-365/+0
2011-09-01Make resolve recognize upvarsMarijn Haverbeke-7/+11
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-01Move mutability checking into its own pass.Marijn Haverbeke-5/+5
Having it in the alias pass was slightly more efficient (finding expression roots has to be done in both passes), but further muddled up the already complex alias checker. Also factors out some duplication in the mutability-checking code.
2011-09-01Store arg mode and objfield mutability in their defMarijn Haverbeke-4/+4
2011-08-31Remove a few more usages of std::str from rustc. Issue #855Brian Anderson-5/+5
2011-08-31Convert uses of #fmt to #ifmt. Issue #855Brian Anderson-76/+72
2011-08-30Convert #env to istrs. Temporarily disable usage in rustc. Issue #855Brian Anderson-1/+1
2011-08-30Add #ifmt extension, like #fmt but for istrs. Issue #855Brian Anderson-0/+364
2011-08-30Remove the %S istr conversion from #fmtBrian Anderson-2/+0
I want to do the #fmt transition a different way. Issue #855
2011-08-30Stop relying on klunky hack in alias.rsMarijn Haverbeke-1/+1
It assumed node_ids increased monotonically for locals, but macros make this no longer the case, and it was a dubious assumption anyway. It now numbers locals itself and uses that to determine which precede which.
2011-08-29Implement non-internal ivecsMarijn Haverbeke-4/+2
Vectors are now similar to our old, pre-internal vectors, except that they are uniquely owned, not refcounted. Their name should probably change too, then. I've renamed them to vec in the runtime, will do so throughout the compiler later.
2011-08-27Convert misc compiler bits to istrs. Issue #855Brian Anderson-47/+47
2011-08-27Convert rustc::syntax::ext::base to istrs. Issue #855Brian Anderson-82/+87
2011-08-27Convert rustc::driver::session to istrs. Issue #855Brian Anderson-5/+8
2011-08-27Convert rustc::syntax::codemap to istrs. Issue #855Brian Anderson-36/+36
2011-08-27Convert rustc::syntax::ast_util to istrs. Issue #855Brian Anderson-47/+47
2011-08-27Convert pretty-printer to istrs. Issue #855Brian Anderson-319/+329
2011-08-27Convert parser to istrs. Issue #855Brian Anderson-211/+219
2011-08-27Convert rustc::syntax::eval to istrs. Issue #855Brian Anderson-14/+15
2011-08-27Convert rustc::syntax::token to istrs. Issue #855Brian Anderson-75/+79
2011-08-27Convert lexer to istrs. Issue #855Brian Anderson-101/+133
2011-08-27Convert rest of the AST to istrs. Issue #855Brian Anderson-32/+41
2011-08-27Support istrs in #fmt. Issue #855Brian Anderson-0/+2
The format string may be an istr and istr args may be used with %S
2011-08-27Remove ast::identistr. Issue #855Brian Anderson-8/+6
2011-08-27Convert ast::ident to istr. Issue #855Brian Anderson-112/+154
2011-08-27Convert std::map::new_str_hash to istrs. Issue #855Brian Anderson-72/+92
2011-08-27Convert std::generic_os to istrs. Issue #855Brian Anderson-2/+5
2011-08-27Convert std::io to istrs. Issue #855Brian Anderson-19/+24
2011-08-27Convert std::fs to istrs. Issue #855Brian Anderson-7/+12
2011-08-27Convert std::int to istrs. Issue #855Brian Anderson-10/+18
2011-08-27Convert std::uint to istrs. Issue #855Brian Anderson-3/+5
2011-08-27Don't output bogus spans when reporting a message without one.Brian Anderson-3/+3
Emacs gets confused by <input>:0:0:0:0:
2011-08-27Output error spans that don't confuse emacs compilation mode. Closes #845Brian Anderson-2/+2
2011-08-26Revert "Revert "Use typestate constraints for trans_be""Tim Chevalier-2/+2
This reverts commit b0db13956f4f106c4bf5a9210c7df439b34506a4. (Should work now that we have a new snapshot)
2011-08-25Remove remaining use of 'pred' and make 'pred' a non-reserved word. Huzzah\!Tim Chevalier-6/+0
2011-08-25Remove typestate workaround that's no longer necessaryTim Chevalier-4/+1
2011-08-25Support unchecked blocksTim Chevalier-10/+42
This patch supports the syntax unchecked { ... } to disable purity checking within a block. Presumably it will only be used within a declared "pure fn". However, there is no checking that it doesn't occur elsewhere, and it would be harmless for it to do so. I went with Lindsey's suggestion for the syntax, but it's subject to change. This allows you to write code that uses predicates that call arbitrary Rust functions, but you must declare your intentions by wrapping it in an unchecked { ... } block. The test case run-pass/unchecked-predicates.rs demonstrates how to do that.
2011-08-25Change "pred" to "pure fn" within the compiler.Tim Chevalier-2/+2
2011-08-25Move ast::pat_id_map to ast::utilBrian Anderson-2/+2
2011-08-24hmm, this should have been in the last commit. Oops.Tim Chevalier-0/+1
2011-08-24Change "pred" to "pure fn" (but still accept "pred")Tim Chevalier-6/+10
This is part 1 of changing the "pred" keyword to "pure fn". Right now, the compiler accepts both "pred" and "pure fn".
2011-08-23Add kind-checking for assign-op, copy, ret, be, fail exprs. Fix caught ↵Graydon Hoare-3/+3
kinding-violations in rustc and libstd.
2011-08-23Fix pretty-printing of istr literals. Issue #855Brian Anderson-2/+13
2011-08-22Move functions from syntax::ast to syntax::ast_utilBrian Anderson-227/+235
This leaves syntax::ast just defining the AST, which strikes me as somewhat nicer