about summary refs log tree commit diff
path: root/src/comp/metadata
AgeCommit message (Collapse)AuthorLines
2012-03-02Move src/comp to src/rustcGraydon Hoare-12548/+0
2012-03-02emit mthd data if marked inlineNiko Matsakis-11/+8
2012-03-02restructure to better support method inliningNiko Matsakis-118/+124
2012-03-02retool inline encoding to handle methods, fix testsNiko Matsakis-35/+136
2012-02-29optionally enforce local variable mutabilityNiko Matsakis-14/+30
2012-02-29Recognize last uses for copied closed-over variablesMarijn Haverbeke-6/+3
And clean up and fix some bad things in last_use.rs. Closes #1894
2012-02-28add ability to run multi-crate tests, run tests with --inlineNiko Matsakis-2/+3
2012-02-28enumerate ids for arguments tooNiko Matsakis-1/+5
2012-02-28change def's that are always local to use node_id, add --inline optNiko Matsakis-33/+31
2012-02-28correct freevar encoding, add more debugging outputNiko Matsakis-3/+16
2012-02-24Encode/decode AST into metadata, re-instantiate inlined itemsNiko Matsakis-681/+9714
2012-02-23Various cleanups and optimizations in core::strMarijn Haverbeke-1/+1
2012-02-22Make the various from_str functions return optionsMarijn Haverbeke-9/+4
So that they can be used with user input without causing task failures. Closes #1335
2012-02-21Include @ in crate_ctxt and fn_ctxt type definitionsMarijn Haverbeke-2/+2
So that code using them doesn't have to spell it out constantly.
2012-02-17rustc: Make resolve more forgiving of missing external cratesBrian Anderson-3/+4
Rustdoc needs to be able to resolve locals without resolving externals
2012-02-15make mut a keyword synonymous with mutableNiko Matsakis-14/+14
first step towards issue #1273
2012-02-15Rewrite exhaustiveness checkerMarijn Haverbeke-9/+9
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-15Replace some explicit fails with 'alt check' invocationsMarijn Haverbeke-2/+1
2012-02-15Support 'alt check' syntaxMarijn Haverbeke-1/+1
It is only a way to flag an alt as intentionally non-exhaustive right now. Issue #1679
2012-02-14rustc: Add crust functions to the ASTBrian Anderson-1/+6
2012-02-13Remove some needlessly repetetive casts in metadata codeMarijn Haverbeke-94/+93
2012-02-13Track purity/unsafety of iface and impl methodsMarijn Haverbeke-10/+24
Closes #1807
2012-02-13add serialization library; convert ebml lib to use u64 internallyNiko Matsakis-7/+7
2012-02-11core: Change the argument order for vec::contains, vec::countBrian Anderson-2/+2
2012-02-11core: Rename vec::member to vec::contains to match str modBrian Anderson-2/+2
2012-02-11correct fully qualified type names to include the crate; add tests (take 2)Niko Matsakis-1/+2
This reverts commit fc023d91c77f468211ba9f7681b4d2a6469aac74.
2012-02-11Revert prior commit until I have time to track down the valgrind errorNiko Matsakis-2/+1
This reverts commit 2ec3a0b60833736a3c0d805768885b4392c36100.
2012-02-10correct fully qualified type names to include the crate; add testsNiko Matsakis-1/+2
fixes #1745
2012-02-10create serialization lib and update serializer to use itNiko Matsakis-3/+3
2012-02-10use absolute names when pretty-printing typesNiko Matsakis-12/+12
2012-02-10put serializer into the build and encode full item pathsNiko Matsakis-13/+98
2012-02-10create serializer project which autogenerates serialization codeNiko Matsakis-0/+653
2012-02-10update ebml interfaceNiko Matsakis-22/+21
2012-02-09Further WIP on classesTim Chevalier-0/+7
Changes to resolve and typeck. Still nothning working yet.
2012-02-09Fix bug in decoding of method metadataMarijn Haverbeke-1/+1
2012-02-09Remove some pointless importsMarijn Haverbeke-8/+0
2012-02-07String split renaming:Kevin Cantu-1/+1
* Renamed str::split -> str::split_byte * Renamed str::splitn -> str::splitn_byte * Renamed str::split_func -> str::split * Renamed str::split_char -> str::split_char * Renamed str::split_chars_iter -> str::split_char_iter * Added u8::is_ascii * Fixed the behavior of str::split_str, so that it matches split_chars and split (i.e. ["", "XXX", "YYY", ""] == split_str(".XXX.YYY.", ".")) * Fixed str::split_byte and str::splitn_byte so that they handle splitting UTF-8 strings on a given UTF-8/ASCII byte and also handle "" as the others do
2012-02-07Minor class-related tweaks to the ASTTim Chevalier-2/+2
2012-02-07Reuse monomorphized functions for different box typesMarijn Haverbeke-0/+2
The free glue for opaque boxes will pick the actual tydesc out of the box, and call its glue. Issue #1736
2012-02-06Make ty::t type self-sufficientMarijn Haverbeke-16/+15
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-06Self types for ifacesMarijn Haverbeke-0/+12
This allows a 'Name:' to appear in front of an iface declaration's name, which will cause 'Name' to refer to the self type (with the same number of type parameters as the iface has) in the method signatures of the iface. For example: iface F: functor<A> { fn fmap<B>(f: fn(A) -> B) -> F<B>; } Issue #1718
2012-02-05infer modes rather than overwriting with expected tyNiko Matsakis-6/+2
2012-02-03Beginnings of front-end support for classesTim Chevalier-0/+6
Added class support to the parser, prettyprinter, fold, and visit. (See Issue 1726.) This is WIP -- the test case is xfailed, and attempting to compile it will error out in resolve.
2012-02-03Store item paths in ast_map, get rid of trans::local_ctxtMarijn Haverbeke-2/+2
The direct motivation for this was that the monomorphizer needs to be able to generate sane symbols for random items. The typechecker can probably also use this in the future to provide more useful error messages.
2012-02-01Remove support for native typesMarijn Haverbeke-13/+0
Issue #1673
2012-01-31Change option::t to optionTim Chevalier-10/+10
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/+12
middle::check_alt does the work. Lots of changes to add default cases into alts that were previously inexhaustive.
2012-01-30Substitute type parameters more eagerlyMarijn Haverbeke-11/+11
This simplifies the typechecker a bit (no more ty_param_substs_opt_and_ty) and is needed for another experiment I'm playing with. I hope it also makes compilation faster (the bots will tell).
2012-01-30Revert self typesMarijn Haverbeke-9/+7
2012-01-27Merge remote-tracking branch 'killerswan/fixing_strings_2'Brian Anderson-14/+14
Conflicts: src/comp/driver/driver.rs src/comp/middle/trans/base.rs src/comp/syntax/parse/lexer.rs