summary refs log tree commit diff
path: root/src/librustc/metadata/tyencode.rs
AgeCommit message (Collapse)AuthorLines
2013-09-23librustc: Remove garbage collected functions from front/{config,test} and ↵Patrick Walton-1/+1
metadata/{tydecode,tyencode}
2013-09-04stop treating char as an integer typeDaniel Micay-1/+1
Closes #7609
2013-09-03Modernized a few more types in syntax::astMarvin Löbel-4/+4
2013-08-27librustc: Remove `&const` and `*const` from the language.Patrick Walton-1/+0
They are still present as part of the borrow check.
2013-08-20rm obsolete integer to_str{,_radix} free functionsDaniel Micay-2/+1
2013-08-11librustc: Convert from `@Object` to `@mut Object` as neededNiko Matsakis-1/+1
2013-08-06Move EnumSet into libextraSangeun Kim-3/+2
2013-08-03remove obsolete `foreach` keywordDaniel Micay-5/+5
this has been replaced by `for`
2013-08-03replace all remaining `for` with `foreach` or `do`Daniel Micay-4/+6
2013-08-01migrate many `for` loops to `foreach`Daniel Micay-5/+5
2013-07-24Generalize the `ty::substs` struct so that it can representNiko Matsakis-1/+16
multiple lifetime parameters, and not just one. Also add an option for erasing lifetimes, which makes trans code somewhat simpler and cleaner.
2013-07-17librustc: Remove the `Copy` bound from the language.Patrick Walton-1/+0
2013-07-17librustc: Remove all uses of "copy".Patrick Walton-5/+5
2013-07-10Add an identifier to TypeParameterDefs and use it to pretty print type ↵Niko Matsakis-0/+2
parameters
2013-06-29Great renaming: propagate throughout the rest of the codebaseCorey Richardson-5/+4
2013-06-28librustc: Rewrite reachability and forbid duplicate methods in type ↵Patrick Walton-1/+0
implementations. This should allow fewer symbols to be exported.
2013-06-28librustc: Change Const to Freeze in the compilerPatrick Walton-1/+1
2013-06-28librustc: Rename Owned to Send in the compilerPatrick Walton-1/+1
2013-06-24Merge remote-tracking branch 'cmr/various-cleanup' into incomingBrian Anderson-1/+0
2013-06-23Parse and typecheck (not kindcheck) bounds on trait paths.Ben Blum-1/+4
2013-06-23vec: remove BaseIter implementationDaniel Micay-4/+4
I removed the `static-method-test.rs` test because it was heavily based on `BaseIter` and there are plenty of other more complex uses of static methods anyway.
2013-06-21Remove `ast::pure_fn` and all concept of `pure` from the compilerCorey Richardson-1/+0
2013-06-13Use @str instead of @~str in libsyntax and librustc. Fixes #5048.Huon Wilson-8/+8
This almost removes the StringRef wrapper, since all strings are Equiv-alent now. Removes a lot of `/* bad */ copy *`'s, and converts several things to be &'static str (the lint table and the intrinsics table). There are many instances of .to_managed(), unfortunately.
2013-05-30Add 'Sized' builtin kind; doesn't do anything yetBen Blum-0/+1
2013-05-30Remove a bunch of unnecessary allocations and copiesBjörn Steinbrink-2/+1
2013-05-28Remove unnecessary allocations flagged by lintSeo Sanghyeon-2/+2
2013-05-22libextra: Rename the actual metadata names of libcore to libstd and libstd ↵Patrick Walton-0/+2
to libextra
2013-05-20Remove all unnecessary allocations (as flagged by lint)Alex Crichton-5/+5
2013-05-16Add BuiltinBounds to closure type: parse and handle subtyping,Niko Matsakis-1/+4
but do not integrate with kindck etc (requires a snapshot first)
2013-05-14rustc: Remove ty::argErick Tryzelaar-6/+2
2013-05-14Use static string with fail!() and remove fail!(fmt!())Björn Steinbrink-1/+1
fail!() used to require owned strings but can handle static strings now. Also, it can pass its arguments to fmt!() on its own, no need for the caller to call fmt!() itself.
2013-05-09Refactor representation of bounds to separate out BuiltinBounds intoNiko Matsakis-11/+13
its own type. Use a bitset to represent built-in bounds. There are several places in the language where only builtin bounds (aka kinds) will be accepted, e.g. on closures, destructor type parameters perhaps, and on trait types.
2013-05-09librustc: rename vec::each(var) to var.eachYoungmin Yoo-2/+1
2013-05-05Merge remote-tracking branch 'mozilla/incoming' into issue-5910-dyna-freezeNiko Matsakis-10/+0
Conflicts: src/libcore/core.rc src/libcore/hashmap.rs src/libcore/num/f32.rs src/libcore/num/f64.rs src/libcore/num/float.rs src/libcore/num/int-template.rs src/libcore/num/num.rs src/libcore/num/strconv.rs src/libcore/num/uint-template.rs src/libcore/ops.rs src/libcore/os.rs src/libcore/prelude.rs src/libcore/rt/mod.rs src/libcore/unstable/lang.rs src/librustc/driver/session.rs src/librustc/middle/astencode.rs src/librustc/middle/borrowck/check_loans.rs src/librustc/middle/borrowck/gather_loans.rs src/librustc/middle/borrowck/loan.rs src/librustc/middle/borrowck/preserve.rs src/librustc/middle/liveness.rs src/librustc/middle/mem_categorization.rs src/librustc/middle/region.rs src/librustc/middle/trans/base.rs src/librustc/middle/trans/inline.rs src/librustc/middle/trans/reachable.rs src/librustc/middle/typeck/check/_match.rs src/librustc/middle/typeck/check/regionck.rs src/librustc/util/ppaux.rs src/libstd/arena.rs src/libstd/ebml.rs src/libstd/json.rs src/libstd/serialize.rs src/libstd/std.rc src/libsyntax/ast_map.rs src/libsyntax/parse/parser.rs src/test/compile-fail/borrowck-uniq-via-box.rs src/test/compile-fail/regions-infer-borrow-scope-within-loop.rs src/test/run-pass/borrowck-nested-calls.rs
2013-05-02Remove 'Local Variable' commentsBrendan Zabarauskas-10/+0
2013-04-30new borrow checker (mass squash)Niko Matsakis-23/+25
2013-04-29librustc: Remove the concept of modes from the compiler.Patrick Walton-8/+0
This commit does not remove `ty::arg`, although that should be possible to do now.
2013-04-27only use #[no_core] in libcoreDaniel Micay-3/+0
2013-04-19rustc: de-mode + fallout from libsyntax changesAlex Crichton-10/+10
2013-04-19librustc: Remove def_ids from types.Patrick Walton-13/+0
2013-04-17Allow casting to mutable trait objects.Josh Matthews-3/+10
2013-04-10Reason about nested free variables that appear in a functionNiko Matsakis-3/+3
signature. In a nutshell, the idea is to (1) report an error if, for a region pointer `'a T`, the lifetime `'a` is longer than any lifetimes that appear in `T` (in other words, if a borrowed pointer outlives any portion of its contents) and then (2) use this to assume that in a function like `fn(self: &'a &'b T)`, the relationship `'a <= 'b` holds. This is needed for #5656. Fixes #5728.
2013-04-09Cleanup substitutions and treatment of generics around traits in a number of ↵Niko Matsakis-1/+7
ways. - In a TraitRef, use the self type consistently to refer to the Self type: - trait ref in `impl Trait<A,B,C> for S` has a self type of `S`. - trait ref in `A:Trait` has the self type `A` - trait ref associated with a trait decl has self type `Self` - trait ref associated with a supertype has self type `Self` - trait ref in an object type `@Trait` has no self type - Rewrite `each_bound_traits_and_supertraits` to perform substitutions as it goes, and thus yield a series of trait refs that are always in the same 'namespace' as the type parameter bound given as input. Before, we left this to the caller, but this doesn't work because the caller lacks adequare information to perform the type substitutions correctly. - For provided methods, substitute the generics involved in the provided method correctly. - Introduce TypeParameterDef, which tracks the bounds declared on a type parameter and brings them together with the def_id and (in the future) other information (maybe even the parameter's name!). - Introduce Subst trait, which helps to cleanup a lot of the repetitive code involved with doing type substitution. - Introduce Repr trait, which makes debug printouts far more convenient. Fixes #4183. Needed for #5656.
2013-04-05Refactor so that references to traits are not represented using a type with aNiko Matsakis-3/+8
bare function store (which is not in fact a kind of value) but rather ty::TraitRef. Removes many uses of fail!() and other telltale signs of type-semantic mismatch. cc #4183 (not a fix, but related)
2013-04-05Rather than storing a list of ty::method per trait, store one ty::methodNiko Matsakis-1/+1
per method and list of def-ids per trait.
2013-04-03rename Linear{Map,Set} => Hash{Map,Set}Daniel Micay-2/+2
2013-04-03hashmap: rm linear namespaceDaniel Micay-1/+1
2013-03-29Add AbiSet and integrate it into the AST.Niko Matsakis-4/+8
I believe this patch incorporates all expected syntax changes from extern function reform (#3678). You can now write things like: extern "<abi>" fn foo(s: S) -> T { ... } extern "<abi>" mod { ... } extern "<abi>" fn(S) -> T The ABI for foreign functions is taken from this syntax (rather than from an annotation). We support the full ABI specification I described on the mailing list. The correct ABI is chosen based on the target architecture. Calls by pointer to C functions are not yet supported, and the Rust type of crust fns is still *u8.
2013-03-28Removing unused importsAlex Crichton-2/+1
2013-03-26rustc: Purge of HashMap, fixing segfaulting casesAlex Crichton-1/+1
Various FIXME comments added around to denote copies which when removed cause the compiler to segfault at some point before stage2. None of these copies should even be necessary.