about summary refs log tree commit diff
path: root/src/comp/syntax
AgeCommit message (Collapse)AuthorLines
2011-12-28Move the kind datatype to middle::tyMarijn Haverbeke-30/+0
The AST no longer references it.
2011-12-28Change representation of type params to handle interface boundsMarijn Haverbeke-38/+65
Issue #1227
2011-12-28comp: minor cleanup.Erick Tryzelaar-1/+1
2011-12-23Go back to a single visit_fn function in visit.rsMarijn Haverbeke-49/+21
2011-12-23Get rid of visit_fn_block in visit.rsMarijn Haverbeke-23/+2
It seems redundant and error-prone.
2011-12-23Check impls methods against the type of their iface.Marijn Haverbeke-9/+9
2011-12-23Parse `iface` items and interface references in `impl` items.Marijn Haverbeke-75/+110
The (temporary) syntax is iface seq<T> { fn len() -> uint; fn iter(f: block(T)); } // The 'blah<T>' can be left of to default the name of the // impl to seq<T>. The 'of seq<T>' can be left off when // not implementing a named interface. impl blah<T> of seq<T> for [T] { fn len() -> uint { vec::len(self) } fn iter(f: block(T)) { for x in self { f(x); } } }
2011-12-23Make ast::ty_method hold a fn_decl, rather than duplicating its fieldsMarijn Haverbeke-33/+14
2011-12-22Register new snapshots, purge log_err and log_full in favour of log(...).Graydon Hoare-17/+13
2011-12-22Switch core macros to expand to log(level, ...).Graydon Hoare-4/+4
2011-12-22Merge all 3 log syntaxes, tidy up residual misuses.Graydon Hoare-17/+12
2011-12-22Merge branch 'master' of github.com:graydon/rustGraydon Hoare-174/+147
2011-12-22Register snapshots and switch logging over to use of log_full or #error / ↵Graydon Hoare-64/+68
#debug.
2011-12-22Work around unwinding bugMarijn Haverbeke-1/+2
See issue #1374
2011-12-22Unify some data structures in syntax::ast that were doing the same thingMarijn Haverbeke-174/+146
As a preparation to removing some duplication in typeck.
2011-12-22Revert all of yesterday's snapshots and try again. Cursed!Graydon Hoare-4/+4
2011-12-22Merge branch 'master' of github.com:graydon/rustGraydon Hoare-18/+1
2011-12-22Remove trivial cast checkerMarijn Haverbeke-18/+1
I consider the added complexity not justified at this point, and it interacts badly with the patches for issue #828. Feel free to discuss.
2011-12-21More flailing on log syntax due to call-expr ambiguity in previous attempt.Graydon Hoare-2/+9
2011-12-21Out-of-order-code typo. Snapshot again.Graydon Hoare-1/+1
2011-12-21Switch log_expr to carrying a full expr:u32 for level. Add log_full variant ↵Graydon Hoare-12/+38
that parses that expr, prepare for snapshot.
2011-12-21upgrade kind checkNiko Matsakis-0/+1
2011-12-21update pprinter to understand ret type of block, add warningsNiko Matsakis-0/+5
2011-12-21Make { || ... } sugar for any type of closure, inferredNiko Matsakis-58/+103
2011-12-21rustc: Exclude stdin from codemap files when lookup_posHaitao Li-3/+5
Fixes issue #1362
2011-12-20Inject "core macros" into default syntax-expansion environment. Bit of a ↵Graydon Hoare-21/+48
kludge but enough to work on logging-via-macros.
2011-12-19implement capture clauses (move, in particular) and integrateNiko Matsakis-0/+4
them into type state and so forth
2011-12-19resolve capture clausesNiko Matsakis-20/+19
2011-12-19Add type argument field to expr_pathMarijn Haverbeke-6/+20
This way, you can explicitly provide type parameters when calling a generic method. Issue #1227
2011-12-19Use quotes around tokens in parser error messages to make them more readableMarijn Haverbeke-12/+12
Closes #1328
2011-12-18Only look for a matching method when normal field access failsMarijn Haverbeke-5/+3
We should probalby warn when defining a method foo on {foo: int} etc. This should reduce the amount of useless typevars that are allocated. Issue #1227
2011-12-16Reserve node_id 0 for the crate top-level moduleMarijn Haverbeke-0/+1
And define a const to refer to it.
2011-12-16Switch fmt extension to reference extfmt that's in core.Graydon Hoare-7/+2
2011-12-16reorder args to the various vec, option fns so blk comes lastNiko Matsakis-49/+49
2011-12-16Make polymorphic impl methods workMarijn Haverbeke-13/+15
Something will still have to be done to the AST to make it possible to say `x.foo::<int>()`, since currently field access never allows type parameters. Issue #1227
2011-12-16Change syntax for implMarijn Haverbeke-20/+16
Move the name of the bundle to the front, allow type parameters (not handled yet), and add a 'for' keyword: impl utils for int { fn str() -> str { int::str(self) } fn times(f: block()) { ... } }
2011-12-16Make 1.f parse as a field access on the integer 1Marijn Haverbeke-1/+1
A dot is only considered part of a number when not followed by a letter Closes #1306
2011-12-16Make uses of self in impls compileMarijn Haverbeke-25/+2
Get rid of expr_self_call, introduces def_self. `self` is now, syntactically, simply a variable. A method implicitly brings a `self` binding into scope. Issue #1227
2011-12-16Parse and resolve implementations.Marijn Haverbeke-11/+58
Issue #1227
2011-12-15massive refactor of how closures workNiko Matsakis-0/+9
2011-12-15Iterate over an array when creating the parser's reserved word tableMarijn Haverbeke-38/+8
2011-12-14change syntax from lambda[send] to sendfnNiko Matsakis-81/+15
2011-12-14restructure, temporarily working around what looks like an LLVM bugNiko Matsakis-3/+37
2011-12-14remove extra trailing semicolonNiko Matsakis-1/+1
2011-12-14push changes through to get things compiling, if not running.Niko Matsakis-13/+39
2011-12-14first attempt, not happy with itNiko Matsakis-33/+37
2011-12-14define ty and update parser for sendable lambdasNiko Matsakis-7/+96
2011-12-13Copy first batch of material from libstd to libcore.Graydon Hoare-40/+49
2011-12-09Allow type annotations for blocksMarijn Haverbeke-10/+8
I.e. {|foo: int| -> int foo + 2} Issue #1275
2011-12-08Error when parsing the empty record typeMarijn Haverbeke-0/+1
Issue #1200