summary refs log tree commit diff
path: root/src/comp/metadata
AgeCommit message (Collapse)AuthorLines
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.
2011-12-22Register new snapshots, purge log_err and log_full in favour of log(...).Graydon Hoare-1/+1
2011-12-22Merge all 3 log syntaxes, tidy up residual misuses.Graydon Hoare-6/+6
2011-12-22Merge branch 'master' of github.com:graydon/rustGraydon Hoare-26/+12
2011-12-22Register snapshots and switch logging over to use of log_full or #error / ↵Graydon Hoare-21/+21
#debug.
2011-12-22Unify some data structures in syntax::ast that were doing the same thingMarijn Haverbeke-26/+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-4/+11
Issue #1115
2011-12-19Associate names with types introduced by itemsMarijn Haverbeke-2/+14
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-16allow #[link_args] with #[nolink]. For now, fail if two modules link same ↵Graham Fawcett-15/+20
lib, and second has link_args. I think it should undefined to have multiple modules that link in the same library, but provide different link arguments. Unfortunately we don't track link_args by module -- they are just appended as discovered into the crate store -- but for now, it should be an error to provide link_args on a module that's already been included (with or without link_args).
2011-12-16implement #[nolink]; deprecate #[link_name = ""]; note in stdlib to remove ↵Graham Fawcett-1/+8
empty link_name. Can't remove them from stdlib until the snapshotted compiler supports #[nolink].