- 01 2月, 2013 3 次提交
-
-
由 Daniel Micay 提交于
-
由 Nick Desaulniers 提交于
-
由 Niko Matsakis 提交于
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.
-
- 31 1月, 2013 4 次提交
-
-
由 Patrick Walton 提交于
-
由 Patrick Walton 提交于
-
由 Patrick Walton 提交于
-
由 Patrick Walton 提交于
-
- 30 1月, 2013 3 次提交
-
-
由 Tim Chevalier 提交于
Add a new method_super origin for supertrait methods. Also make coherence create a table that maps pairs of trait IDs and self types to impl IDs, so that it's possible to check a supertrait method knowing only its index in its trait's methods (without knowing all supertraits for a given trait). r=nmatsakis and graydon -- with hope, we'll revamp all of this code as per #4678, but for now this fixes the bug. Closes #3979
-
由 Patrick Walton 提交于
-
由 Patrick Walton 提交于
"Dual impls" are impls that are both type implementations and trait implementations. They can lead to ambiguity and so this patch removes them from the language. This also enforces coherence rules. Without this patch, records can implement traits not defined in the current crate. This patch fixes this, and updates all of rustc to adhere to the new enforcement. Most of this patch is fixing rustc to obey the coherence rules, which involves converting a bunch of records to structs.
-
- 29 1月, 2013 4 次提交
-
-
由 Tim Chevalier 提交于
-
由 Niko Matsakis 提交于
r=brson
-
由 Niko Matsakis 提交于
The tail portion of the pattern effectively borrows a vector, but the borrow checker knew nothing about this. r=catamorphism
-
由 Niko Matsakis 提交于
contents of other borrowed pointers to the lifetimes of the borrowed value. Fixes #3148. r=catamorphism
-
- 24 1月, 2013 2 次提交
-
-
由 Youngsoo Son 提交于
-
由 Patrick Walton 提交于
-
- 21 1月, 2013 1 次提交
-
-
由 Erick Tryzelaar 提交于
specifically: freevars::freevar_entry ty::{field_ty,AutoAdjustment,AutoRef} mod::{method_param,method_map_entry}
-
- 18 1月, 2013 1 次提交
-
-
由 Patrick Walton 提交于
-
- 15 1月, 2013 4 次提交
-
-
由 Erick Tryzelaar 提交于
-
由 Erick Tryzelaar 提交于
-
由 Erick Tryzelaar 提交于
-
由 Tim Chevalier 提交于
r=pcwalton
-
- 11 1月, 2013 3 次提交
-
-
由 Tim Chevalier 提交于
Previously, the typechecker suppressed many but not all errors, by suppressing errors where the actual type was either ty_err, or a function type whose result was ty_err. Added a has_ty_err flag to the type flags so as to suppress errors for any types involving ty_err. r=nmatsakis
-
由 Niko Matsakis 提交于
This is an interim fix to address the "Beware!" unsoundness. I have a more comprehensive rewrite of mode.rs in the pipeline. r=pcwalton
-
由 Patrick Walton 提交于
-
- 10 1月, 2013 2 次提交
-
-
由 Niko Matsakis 提交于
- Make `extern fn()` assignable to any closure type, rather than a subtype. - Remove unused int_ty_set and float_ty_set - Refactor variable unification and make it more DRY - Do fn sub/lub/glb on the level of fn_sig - Rename infer::to_str::ToStr to infer::to_str::InferStr - Capitalize names of various types - Correct hashing of FnMeta - Convert various records-of-fns into structs-of-fns. This is both eliminating use of deprecated features and more forwards compatible with fn reform. r=pcwalton
-
由 Erick Tryzelaar 提交于
-
- 09 1月, 2013 5 次提交
-
-
由 Patrick Walton 提交于
-
由 Patrick Walton 提交于
Revert "librustc: Make unqualified identifier searches terminate at the nearest module scope. r=tjc" This reverts commit a8d37af2.
-
由 Patrick Walton 提交于
-
由 Niko Matsakis 提交于
r=brson
-
由 Niko Matsakis 提交于
cc #3681
-
- 08 1月, 2013 1 次提交
-
-
由 Patrick Walton 提交于
~20% perf win for trans on -O0, with other minor improvements across the board. No effect on -O2.
-
- 06 1月, 2013 2 次提交
-
-
由 Patrick Walton 提交于
-
由 Patrick Walton 提交于
librustc: Fix unconditional ty_to_str call in ty.rs. Was heaviest path in allocation. Negligible perf win. rs=perf-fix
-
- 28 12月, 2012 1 次提交
-
-
由 Patrick Walton 提交于
librustc: Terminate name searches at the nearest module scope for paths that contain at least two components. r=graydon
-
- 23 12月, 2012 1 次提交
-
-
由 Tim Chevalier 提交于
For example, in let x: char = 42; This was an ICE and is now a proper type error, as per #3477
-
- 18 12月, 2012 1 次提交
-
-
由 Erick Tryzelaar 提交于
-
- 14 12月, 2012 2 次提交
-
-
由 Patrick Walton 提交于
-
由 Patrick Walton 提交于
librustc: Have coherence check Copy kind bounds when determining whether parameter substitutions could possibly unify. r=nmatsakis
-