summary refs log tree commit diff
path: root/src/librustc/metadata/tyencode.rs
AgeCommit message (Collapse)AuthorLines
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.
2013-03-26rustc: Remove uses of oldmap::HashMapAlex Crichton-2/+2
2013-03-20Refactor the self-info so that the def-id is carried in ty_self()Niko Matsakis-1/+3
and the fn_ctxt doesn't need any self_info field at all. Step towards fixing `fn(&self)` (cc #4846) to have a distinct lifetime.
2013-03-13librustc: Don't accept `as Trait` anymore; fix all occurrences of it.Patrick Walton-20/+20
2013-03-13librustc: Separate out trait storage from evec/estr storagePatrick Walton-2/+14
2013-03-13Remove `++` mode from the compiler (it is parsed as `+` mode)Niko Matsakis-1/+0
and obsolete `-` mode altogether (it *was* parsed as `+` mode).
2013-03-11librustc: Replace all uses of `fn()` with `&fn()`. rs=defunPatrick Walton-1/+1
2013-03-07librustc: Remove structural record types from the compilerPatrick Walton-9/+0
2013-03-02librustc: Remove `fn@`, `fn~`, and `fn&` from librustc. rs=defunPatrick Walton-2/+2
2013-02-26Removed deprecated `str()` functions in int-template.rs and uint-template.rsMarvin Löbel-1/+1
2013-02-20librustc: Get rid of structural records save for front/test.rs.Luqman Aden-2/+6
2013-02-19librustc: change driver::session::Session::str_of to return @~strErick Tryzelaar-2/+2
2013-02-13Remove die!, raplace invocations with fail! Issue #4524 pt 3Nick Desaulniers-1/+1
2013-02-07Make ~fn non-copyable, make &fn copyable, split barefn/closure types,Niko Matsakis-18/+36
correct handling of moves for struct-record update. Part of #3678. Fixes #2828, #3904, #4719.
2013-02-05oldmap: use &K instead of K in find and getPatrick Walton-2/+2
This reverts commit a4250a96fdf61142a9c8dbb6d37ae8435c99e396. This is not the cause of the nonexhaustive-match failure.