summary refs log tree commit diff
path: root/src/comp/metadata/encoder.rs
AgeCommit message (Collapse)AuthorLines
2012-01-18Remove '.' after nullary tags in patternsTim Chevalier-7/+7
Does what it says on the tin. The next commit will remove support for this syntax.
2012-01-17encode variant names and have log print them out.Niko Matsakis-0/+1
2012-01-16Don't evaluate discriminator value constants when parsing.Kevin Atkinson-3/+6
Remove disr_val from ast::variant_ and always use ty::variant_info when the value is needed. Move what was done during parsing into other passes, primary typeck.rs. This move also correctly type checks the disr. value expression; thus, fixing rustc --pretty=typed when disr. values are used.
2012-01-13make "native fn" the type for bare functions, remove fn exprsNiko Matsakis-1/+1
2012-01-13deprecate fn exprs and the fn() type, preferring fn@ and native fnNiko Matsakis-3/+3
2012-01-13Obj system? What obj system?Marijn Haverbeke-32/+0
Removes the obj system from the compiler. Closes #1484
2012-01-12Make driver::session::session no longer an objectMarijn Haverbeke-1/+1
Rather, it is now a struct where properties like opts are accessed directly, and the error-reporting methods are part of a static impl (with the same name as the type).
2012-01-11Fix dependency bug iface-did-of-impl resolvingMarijn Haverbeke-7/+0
By simply not resolving that def id until the typeck pass. Closes #1494
2012-01-11Major clean-up of std::ioMarijn Haverbeke-13/+12
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-10Support explicit discriminant numbers on tag variants.Kevin Atkinson-0/+12
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-05Switch to new param kind bound syntaxMarijn Haverbeke-1/+1
And remove support for the old syntax
2012-01-05Get external interfaces / impls workingMarijn Haverbeke-14/+40
Issue #1227
2012-01-05Write the iface type of an impl in the crate dataMarijn Haverbeke-3/+16
Also, move checking of ifaces into the collect phase of typeck to give further passes some guarantees. Issue #1227
2012-01-02Key tcx.ty_param_bounds on node_ids, not def_idsMarijn Haverbeke-1/+1
This makes it clearer that it's only valid for local nodes.
2011-12-28Change representation of type params to handle interface boundsMarijn Haverbeke-24/+22
Issue #1227
2011-12-23Parse `iface` items and interface references in `impl` items.Marijn Haverbeke-3/+12
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-22Unify some data structures in syntax::ast that were doing the same thingMarijn Haverbeke-24/+12
As a preparation to removing some duplication in typeck.
2011-12-22Add ty::new_ty_hash, clean up comparing of ty::t'sMarijn Haverbeke-1/+1
2011-12-20rustc: Re-export the same name in different namespacesHaitao Li-1/+2
Issue #1115.
2011-12-20rustc: Implement re-export of renamed modulesHaitao Li-3/+5
Issue #1115
2011-12-19Associate names with types introduced by itemsMarijn Haverbeke-0/+4
Issue #828 This is not a full solution yet. To really get sane error messages, we'll also have to guess the name to apply to literals, which seems non-trivial.
2011-12-16Finish resolving and calling of crate-external implsMarijn Haverbeke-19/+31
Issue #1227
2011-12-16reorder args to the various vec, option fns so blk comes lastNiko Matsakis-1/+1
2011-12-16Write impl data to crate library filesMarijn Haverbeke-1/+37
(No one is actually reading it yet.) Issue #1227
2011-12-16rustc: Implement non-renamed re-export across cratesHaitao Li-2/+15
First patch for issue #1115. Not yet ready for re-exported modules which are renamed when importing them.
2011-12-13Copy first batch of material from libstd to libcore.Graydon Hoare-1/+2
2011-12-12rustc: Encode crate hash into metadataHaitao Li-0/+8
2011-11-18Update stdlib, compiler, and tests to new kind systemMarijn Haverbeke-1/+1
This involved adding 'copy' to more generics than I hoped, but an experiment with making it implicit showed that that way lies madness -- unless enforced, you will not remember to mark functions that don't copy as not requiring copyable kind. Issue #1177
2011-11-18Preparation for kind system overhaulMarijn Haverbeke-3/+3
This goes before a snapshot, so that subsequenct patches can make the transition without breaking the build. Disables kind checking pass, makes parser accept both new and old-style kind annotation. Issue #1177
2011-11-17remove compile-command from local variable blocksNiko Matsakis-1/+0
2011-11-16rustc: Use link_name attribute for native functionHaitao Li-1/+1
Fixes issue #906
2011-11-10Cleanup unused importsHaitao Li-2/+1
2011-10-28Make shared kind the default only for generic functionsMarijn Haverbeke-6/+5
You almost never want a function with pinned type params. For types, objects, resources, and tags, pinned types are actually often more sane. For most of these, shared rarely makes sense. Only tricky case is objs -- you'll have to think about the kinds you want there. Issue #1076
2011-10-25Update our code to new type parameter kind syntaxMarijn Haverbeke-1/+1
Closes #1067
2011-10-21Remove last uses of iterators from stdlibMarijn Haverbeke-1/+1
Issue #1056
2011-10-21Move hash table iteration over to block-taking functionsMarijn Haverbeke-9/+8
Issue #1056
2011-10-12make native functions markable as unsafe and incorporate thatNiko Matsakis-2/+8
into the type check
2011-10-12Extend the unchecked block stuff to allow unsafe blocks as well.Niko Matsakis-0/+1
2011-10-10Adjust function signatures to allow for vecs being immediateMarijn Haverbeke-1/+1
Some code was relying on vectors being implicitly by-reference (as non-immediate value). This adds the necessary &&-sigils. Closes #1021
2011-10-07Parse and typecheck by-value and by-ref arg specsMarijn Haverbeke-1/+1
Add sprinkle && throughout the compiler to make it typecheck again. Issue #1008
2011-09-24Vectors containing pinned kinds become pinnedBrian Anderson-1/+1
Otherwise they could be copied
2011-09-15Insert omitted semicolons for statementsMarijn Haverbeke-1/+1
2011-09-12Factor imports mindlessly.Graydon Hoare-9/+2
2011-09-12Pretty-print for new arg-mode syntaxMarijn Haverbeke-9/+7
2011-09-12Reformat for new mode syntax, step 1Marijn Haverbeke-46/+43
Long lines were fixed in a very crude way, as I'll be following up with another reformat in a bit.
2011-09-02Reformat. Issue #855Brian Anderson-40/+30
2011-09-01Remove lots of estr code from rustc. Issue #855Brian Anderson-1/+1
2011-09-01Convert all uses of #ifmt to #fmt. Issue #855Brian Anderson-1/+1
2011-09-01Rename std::istr to std::str. Issue #855Brian Anderson-13/+13
2011-09-01Remove std::str. Issue #855Brian Anderson-1/+0