about summary refs log tree commit diff
path: root/src/comp/syntax/ast.rs
AgeCommit message (Collapse)AuthorLines
2011-09-21Implement pattern ranges for all numeric types.Josh Matthews-0/+1
2011-09-20Represent unique creation as a unop in the AST instead of its own exprBrian Anderson-2/+5
Like the box unop. Issue #409
2011-09-20Parse unique box typesBrian Anderson-0/+1
Issue #409
2011-09-15Require the parameter that will be referenced to be notedMarijn Haverbeke-1/+1
Issue #918
2011-09-15Forbid assignment to by-reference bindingsMarijn Haverbeke-1/+1
Issue #918
2011-09-15Add representation for by-ref let bindingsMarijn Haverbeke-1/+3
Issue #918
2011-09-14Add syntax and representation for return-by-mutably-rooted-refMarijn Haverbeke-1/+1
This will be used in the near future to decide what can safely be done with the returned reference. Issue #918
2011-09-14Refactor parse_ret_ty, start parsing by-alias return specsMarijn Haverbeke-1/+1
2011-09-14Rename ast::controlflow to ast::ret_styleMarijn Haverbeke-9/+6
It will include information about returning by alias.
2011-09-12Factor imports mindlessly.Graydon Hoare-2/+1
2011-09-12Pretty-print for new arg-mode syntaxMarijn Haverbeke-0/+2
2011-09-12Reformat for new mode syntax, step 1Marijn Haverbeke-1/+3
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-2/+2
2011-09-02Rename ty_istr to ty_str. Issue #855Brian Anderson-1/+1
2011-09-02Reformat. Issue #855Brian Anderson-12/+16
2011-09-02Rename ivecs to vecs in the compilerMarijn Haverbeke-2/+2
2011-09-01Remove lots of estr code from rustc. Issue #855Brian Anderson-5/+1
2011-09-01Remove std::str. Issue #855Brian Anderson-1/+0
2011-09-01Make resolve recognize upvarsMarijn Haverbeke-5/+1
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-2/+2
2011-08-27Convert rest of the AST to istrs. Issue #855Brian Anderson-6/+6
2011-08-27Remove ast::identistr. Issue #855Brian Anderson-1/+0
2011-08-27Convert ast::ident to istr. Issue #855Brian Anderson-2/+2
2011-08-27Convert std::map::new_str_hash to istrs. Issue #855Brian Anderson-0/+2
2011-08-25Support unchecked blocksTim Chevalier-1/+11
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-25Move ast::pat_id_map to ast::utilBrian Anderson-2/+0
2011-08-24Change "pred" to "pure fn" (but still accept "pred")Tim Chevalier-1/+1
This is part 1 of changing the "pred" keyword to "pure fn". Right now, the compiler accepts both "pred" and "pure fn".
2011-08-22Move functions from syntax::ast to syntax::ast_utilBrian Anderson-203/+0
This leaves syntax::ast just defining the AST, which strikes me as somewhat nicer
2011-08-22Remove ast::spawn_domBrian Anderson-2/+0
2011-08-22Implement pattern guardsMarijn Haverbeke-1/+1
The syntax is alt x { mypat where mycond { ... } } The condition may refer to any of the variables bound by the pattern. When a guard fails, pattern-matching continues with the next pattern. Closes #857
2011-08-20ReformatBrian Anderson-35/+32
This changes the indexing syntax from .() to [], the vector syntax from ~[] to [] and the extension syntax from #fmt() to #fmt[]
2011-08-18CommentsTim Chevalier-1/+2
2011-08-18Change ast::ty_ivec, ty::ty_ivec to ty_vecBrian Anderson-1/+1
2011-08-18Remove ast::ty_vecBrian Anderson-1/+0
2011-08-18Remove seq_kind from ast::expr_vecBrian Anderson-1/+1
2011-08-17Allow multiple imports in a single statementBrian Anderson-0/+5
Like so: import foo::{bar, baz}; Issue #817
2011-08-17Refactor ast::view_item to differentiate between [ident]s and pathsBrian Anderson-2/+6
2011-08-17Allow multiple exports in a single export statement. Issue #817Brian Anderson-7/+7
2011-08-16Port the compiler to the expr foo::<T> syntax.Erick Tryzelaar-2/+2
2011-08-16Port the compiler to foo<T> decl syntax.Erick Tryzelaar-6/+6
2011-08-16Port the compiler to the typaram foo<T> syntax.Erick Tryzelaar-47/+47
2011-08-16Removing tasks, ports and chans from the compiler.Eric Holk-5/+0
2011-08-16Rename std::ivec to std::vecBrian Anderson-1/+0
2011-08-15The wonky for...in... whitespace was bothering me. Sorry!Lindsey Kuper-3/+3
2011-08-15Add operator 'copy', translates as fall-through.Graydon Hoare-0/+1
2011-08-15Make spans into stacks (to store expansion backtraces).Paul Stansifer-0/+8
2011-08-15Rename a field (so that macros can mention it).Paul Stansifer-1/+1
2011-08-15rustc: Parse and typecheck unique pointersPatrick Walton-0/+1
2011-08-15Add tuple patternsMarijn Haverbeke-11/+9
2011-08-15Tuple fields are immutableMarijn Haverbeke-4/+2