about summary refs log tree commit diff
path: root/src/comp/metadata
AgeCommit message (Collapse)AuthorLines
2012-01-27Move various trans_ modules under a trans:: umbrella moduleMarijn Haverbeke-1/+1
Closes #1304
2012-01-26Make re-exporting of impls workMarijn Haverbeke-17/+17
Closes #1438
2012-01-26Remove ty_native_fnMarijn Haverbeke-18/+5
It was being used as a clumsy synonym of ty_fn.
2012-01-25(FIX) Change encoder::encode_metadata to return a [u8] (which will become an ↵Kevin Cantu-2/+2
LLVM string)
2012-01-25Implement implicit self type parameters for ifacesMarijn Haverbeke-7/+9
Closes #1661
2012-01-25Rename tag to enum throughout the compilerMarijn Haverbeke-24/+24
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-24Replace uses of str::unsafe_from_byteKevin Cantu-2/+2
2012-01-23Add export{} syntax to encapsulate things that should be abstractTim Chevalier-1/+1
2012-01-23s/block()/fn()/gNiko Matsakis-5/+5
2012-01-21rustc: Always resolve reexported names from original defHaitao Li-11/+62
Issue #1501
2012-01-19rustc: ";" to "," in enumsPatrick Walton-2/+2
2012-01-19rustc: "tag" -> "enum"Patrick Walton-6/+6
2012-01-19Remove support for the '.' after a nullary tag in a patternTim Chevalier-4/+4
(Commit also includes lots of changes to remove '.'s that a git merge messed up, or else it was monkeys.)
2012-01-18Remove '.' after nullary tags in patternsTim Chevalier-61/+61
Does what it says on the tin. The next commit will remove support for this syntax.
2012-01-19Use ctypes in native function declarationsHaitao Li-1/+1
2012-01-17encode variant names and have log print them out.Niko Matsakis-2/+4
2012-01-16Don't write out type names when hashing typesMarijn Haverbeke-3/+5
I hope this is why my patch made things so much slower...
2012-01-16Store type names in crate metadataMarijn Haverbeke-2/+16
Improves type error messages referring to external types. Issue #1507
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-13distinguish "any closure" and "stack closure" (block)Niko Matsakis-14/+18
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-4/+4
2012-01-13Obj system? What obj system?Marijn Haverbeke-59/+0
Removes the obj system from the compiler. Closes #1484
2012-01-12Make driver::session::session no longer an objectMarijn Haverbeke-14/+15
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-11rustc: Don't allow empty link_name when nolink attribute is presentBrian Anderson-9/+12
Closes #1326
2012-01-11Fix dependency bug iface-did-of-impl resolvingMarijn Haverbeke-20/+1
By simply not resolving that def id until the typeck pass. Closes #1494
2012-01-11Major clean-up of std::ioMarijn Haverbeke-26/+25
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-8/+6
2012-01-11Fix regression in resolving of external implsMarijn Haverbeke-4/+4
2012-01-10Support explicit discriminant numbers on tag variants.Kevin Atkinson-1/+34
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-10rename sendfn to fn~, lambda to fn@Niko Matsakis-10/+10
2012-01-09Remove proto_sugar and 'lambda' as keyword, commit to fn@.Graydon Hoare-2/+2
2012-01-06rejigger impl to have an opaque closure ptr rather thanNiko Matsakis-2/+11
opaque closure
2012-01-06Disallow variable names that shadow tags in scopeTim Chevalier-5/+5
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-05Clean up translating of def_ids in metadata readerMarijn Haverbeke-188/+149
Reduces the amount of closure allocation, and makes the code cleaner.
2012-01-05Switch to new param kind bound syntaxMarijn Haverbeke-2/+2
And remove support for the old syntax
2012-01-05Get external interfaces / impls workingMarijn Haverbeke-101/+139
Issue #1227
2012-01-05Write the iface type of an impl in the crate dataMarijn Haverbeke-4/+45
Also, move checking of ifaces into the collect phase of typeck to give further passes some guarantees. Issue #1227
2012-01-04"str": rename "str_from_cstr" to "from_cstr" (analogous to the other "from_*")Lenny222-1/+1
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.
2012-01-02Box arrays of parameter boundsMarijn Haverbeke-5/+5
2012-01-02More resolving and typechecking of bounded type parameters.Marijn Haverbeke-0/+1
Extern interfaces still don't get recognized. Issue #1227
2012-01-02Check that type parameter bounds are interface typesMarijn Haverbeke-12/+23
Issue #1227
2012-01-01freebsd supportUser Jyyou-0/+1
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-95/+101
Issue #1227
2011-12-23Check impls methods against the type of their iface.Marijn Haverbeke-1/+1
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-23Use the same type of record in ty::ty_fn and ty::methodMarijn Haverbeke-34/+22
Removes some more code duplication.