about summary refs log tree commit diff
path: root/src/librustc/front
AgeCommit message (Collapse)AuthorLines
2013-05-09Use a specialized string interner to reduce the need for owned stringsBjörn Steinbrink-5/+5
&str can be turned into @~str on demand, using to_owned(), so for strings, we can create a specialized interner that accepts &str for intern() and find() but stores and returns @~str.
2013-05-08librustc: Stop parsing modes and remove them entirely from the languagePatrick Walton-1/+1
2013-05-05Merge remote-tracking branch 'mozilla/incoming' into issue-5910-dyna-freezeNiko Matsakis-18/+9
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-02Lets see if changing `span_fatal` to `span_err` gets me further through make ↵Felix S. Klock II-1/+1
check.
2013-05-02Issue 4391: rustc should not silently skip tests with erroneous signature.Felix S. Klock II-2/+9
2013-05-02Remove 'Local Variable' commentsBrendan Zabarauskas-16/+0
2013-04-30new borrow checker (mass squash)Niko Matsakis-2/+3
2013-04-29librustc: Remove the legacy mode in the type visitor intrinsic.Patrick Walton-1/+1
2013-04-27only use #[no_core] in libcoreDaniel Micay-15/+0
2013-04-22librustc: Remove `use mod` from the languagePatrick Walton-1/+0
2013-04-19rustc: de-mode + fallout from libsyntax changesAlex Crichton-12/+12
2013-04-15auto merge of #5778 : jld/rust/reflect-abstract-enum, r=graydonbors-1/+5
This takes care of one of the last remnants of assumptions about enum layout. A type visitor is now passed a function to read a value's discriminant, then accesses fields by being passed a byte offset for each one. The latter may not be fully general, despite the constraints imposed on representations by borrowed pointers, but works for any representations currently planned and is relatively simple. Closes #5652.
2013-04-10Bump version to 0.7-preBrian Anderson-2/+2
2013-04-10path -> PathJohn Clements-5/+5
2013-04-09Bump version to 0.7-preBrian Anderson-2/+2
2013-04-08Make intrinsic::Opaque more opaqueJed Davis-2/+1
2013-04-08Export adt::trans_get_discr abstractly to the type visitor.Jed Davis-0/+5
2013-04-08Feed enum field offsets to type vistors.Jed Davis-1/+1
2013-03-29Add AbiSet and integrate it into the AST.Niko Matsakis-5/+5
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-26option: rm functions that duplicate methodsDaniel Micay-1/+1
2013-03-22librustc: Remove the `const` declaration form everywherePatrick Walton-3/+3
2013-03-21librustc: Register new snapshotsPatrick Walton-18/+0
2013-03-20add stage3 markers where necessary for dist-snapGraydon Hoare-0/+1
2013-03-19librustc: adjust logic for cfg attribute and add not predicate.Luqman Aden-12/+13
2013-03-18librustc: Make the compiler ignore purity.Patrick Walton-2/+2
For bootstrapping purposes, this commit does not remove all uses of the keyword "pure" -- doing so would cause the compiler to no longer bootstrap due to some syntax extensions ("deriving" in particular). Instead, it makes the compiler ignore "pure". Post-snapshot, we can remove "pure" from the language. There are quite a few (~100) borrow check errors that were essentially all the result of mutable fields or partial borrows of `@mut`. Per discussions with Niko I think we want to allow partial borrows of `@mut` but detect obvious footguns. We should also improve the error message when `@mut` is erroneously reborrowed.
2013-03-18librustc: Convert all uses of old lifetime notation to new lifetime ↵Patrick Walton-3/+19
notation. rs=delifetiming
2013-03-13librustc: Don't accept `as Trait` anymore; fix all occurrences of it.Patrick Walton-9/+9
2013-03-07libsyntax: Stop parsing structural record typesPatrick Walton-2/+2
2013-03-07librustc: Remove "extern mod { ... }" from librustc, librustdoc, and tests. ↵Patrick Walton-4/+8
rs=deexterning
2013-03-06Fix a bug with region-parameterized enums etc where trans consideredNiko Matsakis-2/+4
them to be non-monomorphic. Merely having lifetime parameters is not enough to qualify for that status. Fixes #5243.
2013-03-04Remove unused imports throughout src/Alex Crichton-5/+0
2013-03-02librustc: Remove `fn@`, `fn~`, and `fn&` from librustc. rs=defunPatrick Walton-2/+2
2013-03-02librustc: Forbid chained imports and fix the logic for one-level renaming ↵Patrick Walton-6/+5
imports
2013-02-28Merge remote-tracking branch 'remotes/origin/incoming' into incomingErick Tryzelaar-3/+3
2013-02-27Introduce lifetime declarations into the lists of type parameters.Niko Matsakis-3/+3
Major changes are: - replace ~[ty_param] with Generics structure, which includes both OptVec<TyParam> and OptVec<Lifetime>; - the use of syntax::opt_vec to avoid allocation for empty lists; cc #4846
2013-02-25libsyntax: progress on making syntax::visit vecs_implicitly_copyable-freeErick Tryzelaar-23/+31
2013-02-25libsyntax: Convert ast::attribute_ to store a @meta_itemErick Tryzelaar-1/+1
2013-02-21Get rid of structural records in libsyntax and the last bit in librustc.Luqman Aden-10/+8
2013-02-20librustc: Separate most trait bounds with '+'. rs=plussingPatrick Walton-2/+2
2013-02-20librustc: Get rid of structural records save for front/test.rs.Luqman Aden-29/+37
2013-02-19convert ast::meta_items to take @~strsErick Tryzelaar-2/+2
2013-02-19convert syntax::attr to use @~strsErick Tryzelaar-4/+4
2013-02-19libsyntax: change attr:get_attr_name to take a refErick Tryzelaar-1/+1
2013-02-17libsyntax: Update view_item_use/import to reflect actual usageLuqman Aden-4/+5
2013-02-13rustc and std: teach about #[bench], modernize to use quote_expr! some.Graydon Hoare-307/+151
2013-02-07librustc: Lots of de-muting. rs=demutingPatrick Walton-122/+144
2013-02-07Make ~fn non-copyable, make &fn copyable, split barefn/closure types,Niko Matsakis-79/+59
correct handling of moves for struct-record update. Part of #3678. Fixes #2828, #3904, #4719.
2013-01-31test cases, cleanupJohn Clements-7/+10
2013-01-31Workaround for #4717: pad contents of ast. rs=breakageNiko Matsakis-1/+1
2013-01-31Finalize moves-based-on-type implementation.Niko Matsakis-3/+3
Changes: - Refactor move mode computation - Removes move mode arguments, unary move, capture clauses (though they still parse for backwards compatibility) - Simplify how moves are handled in trans - Fix a number of illegal copies that cropped up - Workaround for bug involving def-ids in params (see details below) Future work (I'll open bugs for these...): - Improve error messages for moves that are due to bindings - Add support for moving owned content like a.b.c to borrow check, test in trans (but I think it'll "just work") - Proper fix for def-ids in params Def ids in params: Move captures into a map instead of recomputing. This is a workaround for a larger bug having to do with the def-ids associated with ty_params, which are not always properly preserved when inlining. I am not sure of my preferred fix for the larger bug yet. This current fix removes the only code in trans that I know of which relies on ty_param def-ids, but feels fragile.