about summary refs log tree commit diff
path: root/src/comp
AgeCommit message (Collapse)AuthorLines
2012-01-11Major clean-up of std::ioMarijn Haverbeke-43/+45
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-11Implement std::map as an iface/impl instead of an objMarijn Haverbeke-90/+14
2012-01-11add a log_str() function and allow '%?' in fmt strings to use itNiko Matsakis-0/+2
2012-01-11Fix regression in resolving of external implsMarijn Haverbeke-9/+12
2012-01-11Pass type with params intact as item_type for method calleesMarijn Haverbeke-7/+6
This prevents trans_args from optimizing out nil return types. The method might be generic, in which case it *will* write to a nil retptr.
2012-01-10Fold and re-evaluate expr in tag discriminant.Graydon Hoare-4/+17
2012-01-10Add support for casting enum-like tags to scalar values.Kevin Atkinson-5/+48
2012-01-10Support explicit discriminant numbers on tag variants.Kevin Atkinson-30/+98
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-4/+5
2012-01-10replace lambda with fn@Niko Matsakis-16/+15
2012-01-10rename sendfn to fn~, lambda to fn@Niko Matsakis-85/+80
2012-01-10rustc: Remove sret attributes from functionsBrian Anderson-13/+3
Something about the way we're using it is causing incorrect code generation. Closes #1343
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-11/+11
Issue #1396
2012-01-09Remove proto_sugar and 'lambda' as keyword, commit to fn@.Graydon Hoare-47/+40
2012-01-09Fix rpath bug.Graydon Hoare-2/+2
2012-01-09Make the parser accept 'if' as an alternative to 'when' in alt patterns.Austin Seipp-2/+6
Also fix the pretty printer, making it output 'if' instead of 'when'. Issue #1396
2012-01-09Iface types are not structuralMarijn Haverbeke-2/+1
Not sure how they ended up being marked as such.
2012-01-09Work around recursive type check for iface typesMarijn Haverbeke-3/+7
They are nominal, and can safely refer to themselves.
2012-01-09Properly recognize self as an upvar when closed overMarijn Haverbeke-34/+27
Closes #1463
2012-01-09Fix #1474: check that block args resolved to bare fns do not make use of upvarsNiko Matsakis-8/+13
2012-01-09Don't resolve upvars in fn() { ... } exprsMarijn Haverbeke-6/+3
Closes #1467
2012-01-08Declare MIT license in crate attributes, not BSDBrian Anderson-1/+1
The Rust License is actually the MIT license, not BSD
2012-01-08correct long lineNiko Matsakis-2/+2
2012-01-08modify last use to take into account cap clause, add new testNiko Matsakis-9/+44
2012-01-08First barely-working version of casting to ifaceMarijn Haverbeke-33/+99
Issue #1437
2012-01-08Add fall-through case for non-iface bounds typeck::lookup_methodMarijn Haverbeke-0/+1
Closes #1462
2012-01-06choose a new arbitrary valueNiko Matsakis-2/+2
2012-01-06revert changes to trans_uniq.rsNiko Matsakis-4/+14
2012-01-06revert metricsNiko Matsakis-82/+94
2012-01-06plug leak: free shared type descrs recursively, as we ought toNiko Matsakis-2/+6
2012-01-06hack the tydesc that is registered with a malloc to be what cc expectsNiko Matsakis-22/+47
2012-01-06fix how we walk functions to match new closure fmtNiko Matsakis-3/+8
2012-01-06rejigger impl to have an opaque closure ptr rather thanNiko Matsakis-303/+403
opaque closure
2012-01-06collapse sizeof, alignof into metrics, pass along an instance if availNiko Matsakis-47/+78
2012-01-06make size_of and align_of take an optional valueNiko Matsakis-101/+103
2012-01-06emit the take glue for closure tydescsNiko Matsakis-0/+1
2012-01-06simplify task implNiko Matsakis-1/+1
2012-01-06rustc: Use std::homedir to locate /home/bandersonBrian Anderson-4/+4
Issue #1359
2012-01-06Disallow variable names that shadow tags in scopeTim Chevalier-69/+156
Now, if you have a tag named "foo", a variable declaration like "let foo..." is illegal. This change makes it possible to eliminate the '.' after a nullary tag pattern in an alt (but I'll be doing that in a future commit) -- as now it's always obvious whether a name refers to a tag or a new declared variable. resolve implements this change -- all the other changes are just to get rid of existing code that declares variables that shadow tag names.
2012-01-06Eliminate a use of map::get in freevarsTim Chevalier-14/+21
map::get is evil -- just say no!
2012-01-06Add some basic comments to trans_imp.rsMarijn Haverbeke-0/+30
2012-01-06Make binding of fns with bounded type parameters workMarijn Haverbeke-6/+19
Interns non-static dicts to heap-allocated equivalents so that they no longer have stack scope. Closes #1436
2012-01-06Support interface casting in the typecheckerMarijn Haverbeke-6/+34
Issue #1437
2012-01-06Statically allocate static dictsMarijn Haverbeke-24/+109
Issue #1436
2012-01-06Fix pretty-printing of ty params in iface methodsMarijn Haverbeke-3/+5
2012-01-06Fix bug in method type parameter passingMarijn Haverbeke-5/+5
It would occasionally pass the wrong type parameter, when calling a generic method from a generic impl on a bounded param type.
2012-01-05rustc: Stop exported back::rpath::testBrian Anderson-3/+1
Tests no longer need to be exported
2012-01-05rustc: Allow the test runner to run unexported testsBrian Anderson-8/+33
2012-01-05rustc: Configure out #[test] functions when not testingBrian Anderson-25/+55