Commit Graph

7593 Commits

Author SHA1 Message Date
Jared Roesch
e2d7e904ca Remove Typer + ClosureTyper impls for ParameterEnv 2015-06-30 02:40:17 -07:00
Jared Roesch
fb295a60b3 Remove NormalizingClosureTyper 2015-06-30 02:40:17 -07:00
Jared Roesch
0f13a3f361 Use fresh FulfillmentContexts in select locations 2015-06-30 02:40:17 -07:00
Jared Roesch
64f1a59daf Update all uses of FulfillmentContext
Update all uses of FulfillmentContext to be ones obtained via
an InferCtxt. This is another step of flattening the type
checking context into a single piece of state.
2015-06-30 02:40:16 -07:00
Jared Roesch
6947948b4d Move FufillmentContext into InferContext 2015-06-30 02:40:16 -07:00
Ariel Ben-Yehuda
a5e21daa19 Kill count_late_bound_regions
No, it didn't show up in my profiler. It still needs to die.
2015-06-30 02:24:46 +03:00
Ariel Ben-Yehuda
bf164bc6e3 Fix lifetime elision region accounting
This merges accumulate_regions_in_type with ty_fold::collect_regions.
Fixes #26638
2015-06-30 01:33:16 +03:00
Manish Goregaokar
4adcc78e00 Rollup merge of #26593 - GuillaumeGomez:patch-2, r=Manishearth
Part of #24407.
cc @michaelsproul
2015-06-29 13:59:33 +05:30
Guillaume Gomez
7f830a874c The come back of the "a" eaten by the void 2015-06-29 10:21:39 +02:00
Guillaume Gomez
b442530671 Add more details in error explanation 2015-06-29 10:03:02 +02:00
Guillaume Gomez
14e3d26b8a Add E0110 error explanation 2015-06-29 07:36:59 +02:00
Jared Roesch
15bc4a30c3 Address nits 2015-06-27 19:52:25 -07:00
Jared Roesch
e5b3684872 Remove ClosureTyper impl for FnCtxt 2015-06-27 14:26:13 -07:00
Jared Roesch
480cd8fe67 Ground work for replacing the ClosureTyper trait 2015-06-27 14:15:49 -07:00
Jared Roesch
79d02895ff Begin refactor type checking state
This first patch starts by moving around pieces of state related to
type checking. The goal is to slowly unify the type checking state
into a single typing context. This initial patch moves the
ParameterEnvironment into the InferCtxt and moves shared tables
from Inherited and ty::ctxt into their own struct Tables. This
is the foundational work to refactoring the type checker to
enable future evolution of the language and tooling.
2015-06-27 13:43:20 -07:00
Guillaume Gomez
d73cc56565 Add E0109 error explanation 2015-06-27 14:23:53 +02:00
Eduard Burtescu
ad66c215aa rustc: switch most remaining middle::ty functions to methods. 2015-06-26 07:34:57 +03:00
Eduard Burtescu
5cedd66a6c rustc: remove 3 dead functions in middle::ty. 2015-06-26 07:34:56 +03:00
Eduard Burtescu
6db5126240 rustc: make ty::mk_* constructors into methods on ty::ctxt. 2015-06-26 07:34:56 +03:00
Eduard Burtescu
2332765cbc rustc: prefer unqualified ctxt to ty::ctxt in middle::ty. 2015-06-26 07:34:56 +03:00
Eduard Burtescu
59935f70e0 rustc: move some functions in middle::ty working on Ty to methods. 2015-06-26 07:34:56 +03:00
Eduard Burtescu
aa03871a6e rustc: combine type-flag-checking traits and fns and into one trait. 2015-06-26 07:34:56 +03:00
Jared Roesch
44bccd8842 Rename AsPredicate to ToPredicate in order to match naming conventions 2015-06-25 17:29:20 -07:00
bors
70b2f4789e Auto merge of #26542 - GuillaumeGomez:patch-2, r=Manishearth 2015-06-25 17:21:44 +00:00
Guillaume Gomez
7b4eb1aa90 Add E0327 error code. Thanks @nagisa for his help! 2015-06-25 18:20:29 +02:00
Guillaume Gomez
b7e41d9aea Add E0396 error explanation 2015-06-24 20:55:23 +02:00
bors
6fed735b22 Auto merge of #26061 - Gankro:inherit-dep, r=brson
Uncertain if this is the desired effect/strategy/testing.

r? @aturon
2015-06-23 20:30:56 +00:00
bors
997bd334fb Auto merge of #26354 - jroesch:remove-param-bounds-take-n, r=nikomatsakis
This pull request removes `ParamBounds` a old holdover in the type checker that we (@nikomatsakis and I) had wanted to remove. I'm not sure if the current form is the best possible refactor but I figured we can use this as a place to discuss it.

r? @nikomatsakis
2015-06-23 12:52:59 +00:00
bors
699315e4f5 Auto merge of #26519 - oli-obk:camel_case_const_val, r=eddyb 2015-06-23 11:20:51 +00:00
Oliver Schneider
88b03f349e change const_val enum and its variants to camel-case 2015-06-23 10:31:32 +02:00
Jared Roesch
81e5c1ff06 Remove the mostly unecessary ParamBounds struct 2015-06-23 00:10:19 -07:00
Nick Cameron
ce0c2572ec Fix parallel codegen regression
Regressed by #26326
2015-06-22 22:34:12 -07:00
Seo Sanghyeon
6f7b4ce65a Do not consider fields matched by wildcard patterns to be used 2015-06-22 21:36:14 +09:00
Ariel Ben-Yehuda
59be753544 Make expr_is_lval more robust
Previously it also tried to find out the best way to translate the
expression, which could ICE during type-checking.

Fixes #23173
Fixes #24322
Fixes #25757
2015-06-21 22:31:57 +03:00
bors
74a7e8b03e Auto merge of #26417 - brson:feature-err, r=steveklabnik
It now says '#[feature] may not be used on the stable release channel'.

I had to convert this error from a lint to a normal compiler error.

I left the lint previously-used for this in place since removing it is
a breaking change. It will just go unused until the end of time.

Fixes #24125
2015-06-20 14:24:19 +00:00
bors
4b42cbd5eb Auto merge of #24527 - nikomatsakis:issue-24085, r=nikomatsakis
Expand the "givens" set to cover transitive relations.  The givens array
stores relationships like `'c <= '0` (where `'c` is a free region and
`'0` is an inference variable) that are derived from closure
arguments. These are (rather hackily) ignored for purposes of inference,
preventing spurious errors. The current code did not handle transitive
cases like `'c <= '0` and `'0 <= '1`. Fixes #24085.

r? @pnkfelix 
cc @bkoropoff

*But* I am not sure whether this fix will have a compile-time hit. I'd like to push to try branch observe cycle times.
2015-06-19 22:56:38 +00:00
bors
e4efb47b9d Auto merge of #26351 - eddyb:tls-tcx, r=nikomatsakis
Pre-requisite for splitting the type context into global and local parts.
The `Repr` and `UserString` traits were also replaced by `Debug` and `Display`.
2015-06-19 20:43:14 +00:00
Niko Matsakis
29c86539b3 Expand the "givens" set to cover transitive relations. The givens array
stores relationships like `'c <= '0` (where `'c` is a free region and
`'0` is an inference variable) that are derived from closure
arguments. These are (rather hackily) ignored for purposes of inference,
preventing spurious errors. The current code did not handle transitive
cases like `'c <= '0` and `'0 <= '1`. Fixes #24085.
2015-06-19 12:22:03 -04:00
Guillaume Gomez
2015eb881e Replace "Bad example" by a better sentence 2015-06-19 14:05:11 +02:00
Guillaume Gomez
6471dccd3b Add E0016 explanation 2015-06-19 14:03:07 +02:00
Brian Anderson
f14a0e2de4 Make a better error message for using #[feature] on stable rust
It now says '#[feature] may not be used on the stable release channel'.

I had to convert this error from a lint to a normal compiler error.

I left the lint previously-used for this in place since removing it is
a breaking change. It will just go unused until the end of time.

Fixes #24125
2015-06-18 17:38:38 -07:00
Eduard Burtescu
6eed1662af Remove extra fmt::Debug impl for VtableClosureData from #26147. 2015-06-19 01:45:20 +03:00
Eduard Burtescu
d914831145 rustc: add more doc comments to ty::Lift and ty::with_ctxt. 2015-06-19 01:39:26 +03:00
Eduard Burtescu
0b58fdf925 rustc: remove Repr and UserString. 2015-06-19 01:39:26 +03:00
Eduard Burtescu
dfbc9608ce rustc: replace Repr/UserString impls with Debug/Display ones. 2015-06-19 01:36:20 +03:00
Eduard Burtescu
17e333d31b Move AST Repr impls to Debug impls in libsyntax. 2015-06-19 01:32:46 +03:00
Eduard Burtescu
af7daa0daf rustc: remove some unused UserString and Repr impls. 2015-06-19 01:32:45 +03:00
Eduard Burtescu
b510ea1487 Clean up unused argument/variable warnings. 2015-06-19 01:32:45 +03:00
Eduard Burtescu
a3727559c6 rustc: use the TLS type context in Repr and UserString. 2015-06-19 01:32:44 +03:00
Eduard Burtescu
1f70a2e370 rustc: allow "lifting" T<'a> to T<'tcx> if the value is part of ty::ctxt<'tcx>. 2015-06-19 01:18:43 +03:00