about summary refs log tree commit diff
path: root/src/comp/metadata/decoder.rs
AgeCommit message (Collapse)AuthorLines
2012-03-02Move src/comp to src/rustcGraydon Hoare-577/+0
2012-03-02restructure to better support method inliningNiko Matsakis-1/+1
2012-02-24Encode/decode AST into metadata, re-instantiate inlined itemsNiko Matsakis-7/+19
2012-02-22Make the various from_str functions return optionsMarijn Haverbeke-7/+2
So that they can be used with user input without causing task failures. Closes #1335
2012-02-15Rewrite exhaustiveness checkerMarijn Haverbeke-4/+4
Issue #352 Closes #1720 The old checker would happily accept things like 'alt x { @some(a) { a } }'. It now properly descends into patterns, checks exhaustiveness of booleans, and complains when number/string patterns aren't exhaustive.
2012-02-13Remove some needlessly repetetive casts in metadata codeMarijn Haverbeke-27/+25
2012-02-13Track purity/unsafety of iface and impl methodsMarijn Haverbeke-1/+6
Closes #1807
2012-02-13add serialization library; convert ebml lib to use u64 internallyNiko Matsakis-6/+6
2012-02-10create serialization lib and update serializer to use itNiko Matsakis-3/+3
2012-02-10use absolute names when pretty-printing typesNiko Matsakis-4/+6
2012-02-10put serializer into the build and encode full item pathsNiko Matsakis-0/+30
2012-02-09Fix bug in decoding of method metadataMarijn Haverbeke-1/+1
2012-02-06Make ty::t type self-sufficientMarijn Haverbeke-3/+3
It is now no longer needed to have a ty::ctxt to get at the contents of a ty::t. The straight-forward approach of doing this, simply making ty::t a box type, unfortunately killed our compiler performance (~15% slower) through refcounting cost. Thus, this patch now represents ty::t as an unsafe pointer, assuming that the ty::ctxt, which holds these boxes alive, outlives any uses of the ty::t values. In the current compiler this trivially holds, but it is does of course add a new potential pitfall. ty::get takes a ty::t and returns a boxed representation of the type. I've changed calls to ty::struct(X) to do ty::get(X).struct. Type structs are full of vectors, and copying them every time we wanted to access them was a bit of a cost.
2012-02-01Remove support for native typesMarijn Haverbeke-1/+0
Issue #1673
2012-01-31Change option::t to optionTim Chevalier-5/+5
Now that core exports "option" as a synonym for option::t, search-and- replace option::t with option. The only place that still refers to option::t are the modules in libcore that use option, because fixing this requires a new snapshot (forthcoming).
2012-01-31Require alts to be exhaustiveTim Chevalier-1/+4
middle::check_alt does the work. Lots of changes to add default cases into alts that were previously inexhaustive.
2012-01-30Revert self typesMarijn Haverbeke-9/+7
2012-01-27Merge remote-tracking branch 'killerswan/fixing_strings_2'Brian Anderson-10/+10
Conflicts: src/comp/driver/driver.rs src/comp/middle/trans/base.rs src/comp/syntax/parse/lexer.rs
2012-01-26Remove ty_native_fnMarijn Haverbeke-3/+0
It was being used as a clumsy synonym of ty_fn.
2012-01-25Implement implicit self type parameters for ifacesMarijn Haverbeke-7/+9
Closes #1661
2012-01-25Rename tag to enum throughout the compilerMarijn Haverbeke-8/+8
This should reduce confusion of people trying to read the code.
2012-01-25Replacing str::unsafe_from_bytes with str::from_bytes (part 4)Kevin Cantu-10/+10
2012-01-23s/block()/fn()/gNiko Matsakis-1/+1
2012-01-21rustc: Always resolve reexported names from original defHaitao Li-5/+39
Issue #1501
2012-01-19rustc: "tag" -> "enum"Patrick Walton-2/+2
2012-01-18Remove '.' after nullary tags in patternsTim Chevalier-3/+3
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-2/+3
2012-01-11Fix dependency bug iface-did-of-impl resolvingMarijn Haverbeke-12/+1
By simply not resolving that def id until the typeck pass. Closes #1494
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-11Fix regression in resolving of external implsMarijn Haverbeke-4/+4
2012-01-10Support explicit discriminant numbers on tag variants.Kevin Atkinson-1/+19
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-05Clean up translating of def_ids in metadata readerMarijn Haverbeke-70/+65
Reduces the amount of closure allocation, and makes the code cleaner.
2012-01-05Get external interfaces / impls workingMarijn Haverbeke-49/+72
Issue #1227
2012-01-05Write the iface type of an impl in the crate dataMarijn Haverbeke-1/+19
Also, move checking of ifaces into the collect phase of typeck to give further passes some guarantees. Issue #1227
2012-01-02Box arrays of parameter boundsMarijn Haverbeke-4/+4
2012-01-02Check that type parameter bounds are interface typesMarijn Haverbeke-5/+2
Issue #1227
2011-12-29Box ty_param_bounds_and_tyMarijn Haverbeke-1/+1
It contains a vector, which shouldn't be copied all the time.
2011-12-28Change representation of type params to handle interface boundsMarijn Haverbeke-48/+33
Issue #1227
2011-12-23Use the same type of record in ty::ty_fn and ty::methodMarijn Haverbeke-6/+3
Removes some more code duplication.
2011-12-20rustc: Implement re-export of renamed modulesHaitao Li-1/+0
Issue #1115
2011-12-19Associate names with types introduced by itemsMarijn Haverbeke-2/+10
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-2/+48
Issue #1227
2011-12-16reorder args to the various vec, option fns so blk comes lastNiko Matsakis-1/+0
2011-12-16rustc: Implement non-renamed re-export across cratesHaitao Li-8/+3
First patch for issue #1115. Not yet ready for re-exported modules which are renamed when importing them.
2011-12-15rustc: Box tag variants to avoid copiesBrian Anderson-1/+1
2011-12-13Copy first batch of material from libstd to libcore.Graydon Hoare-1/+2
2011-12-12rustc: Encode crate hash into metadataHaitao Li-3/+11
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-10Cleanup unused importsHaitao Li-2/+0