about summary refs log tree commit diff
path: root/src/comp/syntax/parse
AgeCommit message (Collapse)AuthorLines
2012-01-13distinguish "any closure" and "stack closure" (block)Niko Matsakis-10/+10
2012-01-13make blocks fn& and fn stand for "any closure"Niko Matsakis-14/+17
2012-01-13deprecate fn exprs and the fn() type, preferring fn@ and native fnNiko Matsakis-2/+13
2012-01-13Obj system? What obj system?Marijn Haverbeke-77/+7
Removes the obj system from the compiler. Closes #1484
2012-01-13Convert the objects used in the lexer and parser to records + implsMarijn Haverbeke-484/+435
2012-01-12make parser disambiguate fn~ at top level correctlyNiko Matsakis-1/+12
2012-01-12Cleanups to previous commits for issue #1393.Kevin Atkinson-2/+2
2012-01-11Major clean-up of std::ioMarijn Haverbeke-0/+1
Use ifaces instead of objs, stop wrapping everything in two (or three) layers of no-value-added indirection, and remove some of the more pointless/outdated idioms from the code.
2012-01-10Fold and re-evaluate expr in tag discriminant.Graydon Hoare-1/+1
2012-01-10Support explicit discriminant numbers on tag variants.Kevin Atkinson-2/+41
Addresses issue #1393. For now disallow disr. values unless all variants use nullary contractors (i.e. "enum-like"). Disr. values are now encoded in the crate metadata, but only when it will differ from the inferred value based on the order.
2012-01-10rustc: Accept "enum" in addition to "tag"Patrick Walton-2/+3
2012-01-10replace lambda with fn@Niko Matsakis-1/+5
2012-01-10rename sendfn to fn~, lambda to fn@Niko Matsakis-7/+10
2012-01-09Remove support for 'when' in alt-patterns from parserAustin Seipp-5/+1
Issue #1396
2012-01-09Change all uses of 'when' in alt-patterns to 'if'Austin Seipp-4/+4
Issue #1396
2012-01-09Remove proto_sugar and 'lambda' as keyword, commit to fn@.Graydon Hoare-6/+6
2012-01-09Make the parser accept 'if' as an alternative to 'when' in alt patterns.Austin Seipp-1/+5
Also fix the pretty printer, making it output 'if' instead of 'when'. Issue #1396
2012-01-05require a non-semi expr acting as a stmt to have unit return typeNiko Matsakis-13/+14
2012-01-05make parser handle parenthesized block-sugar exprs properlyNiko Matsakis-49/+80
2012-01-05Switch to new param kind bound syntaxMarijn Haverbeke-10/+8
And remove support for the old syntax
2012-01-05Fix bad spans for ast::ty parsingMarijn Haverbeke-9/+6
The span would be pointing after the actual text.
2012-01-03Allow tail expressions even in no_value blocks. Type checkerNiko Matsakis-28/+16
will guarantee they have unit type.
2012-01-03extend parser so that expressions that do not require semi-colonsNiko Matsakis-2/+2
to be statements are not considered expressions in the tail position
2012-01-03rewrite to put blk as 2nd argNiko Matsakis-1/+1
2012-01-03minimal changes to permit fn blocks in exprNiko Matsakis-68/+64
2012-01-03Make syntax for impls less magicalMarijn Haverbeke-23/+18
The trick of interpreting parameters to the iface type as parameters to the impl was just too magical. Issue #1227
2011-12-29split proto from fn_decl, as not all fn_decls know the proto.Niko Matsakis-38/+21
this will address the (crashing) new test added.
2011-12-29Add support in lexer for utf8 identifiers. No NFKC logic in char yet.Graydon Hoare-2/+4
2011-12-28Change representation of type params to handle interface boundsMarijn Haverbeke-5/+14
Issue #1227
2011-12-23Check impls methods against the type of their iface.Marijn Haverbeke-8/+8
2011-12-23Parse `iface` items and interface references in `impl` items.Marijn Haverbeke-56/+61
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-8/+1
2011-12-22Register new snapshots, purge log_err and log_full in favour of log(...).Graydon Hoare-9/+5
2011-12-22Merge all 3 log syntaxes, tidy up residual misuses.Graydon Hoare-11/+6
2011-12-22Merge branch 'master' of github.com:graydon/rustGraydon Hoare-55/+45
2011-12-22Register snapshots and switch logging over to use of log_full or #error / ↵Graydon Hoare-14/+14
#debug.
2011-12-22Unify some data structures in syntax::ast that were doing the same thingMarijn Haverbeke-55/+45
As a preparation to removing some duplication in typeck.
2011-12-22Merge branch 'master' of github.com:graydon/rustGraydon Hoare-1/+1
2011-12-22Remove trivial cast checkerMarijn Haverbeke-1/+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-1/+4
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-3/+18
that parses that expr, prepare for snapshot.
2011-12-21Make { || ... } sugar for any type of closure, inferredNiko Matsakis-3/+1
2011-12-20Inject "core macros" into default syntax-expansion environment. Bit of a ↵Graydon Hoare-6/+18
kludge but enough to work on logging-via-macros.
2011-12-19resolve capture clausesNiko Matsakis-13/+10
2011-12-19Add type argument field to expr_pathMarijn Haverbeke-1/+6
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-16Make polymorphic impl methods workMarijn Haverbeke-5/+6
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-6/+6
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