Commit Graph

7635 Commits

Author SHA1 Message Date
Jared Roesch
19218ee2a3 Fix make tidy 2015-07-10 19:16:35 -07:00
Jared Roesch
1a268f4d1b Rename TypeWithMutability to TypeAndMut 2015-07-10 18:27:06 -07:00
Jared Roesch
fe30f6251a Remove pub use of TypeError in ty.rs 2015-07-10 15:40:30 -07:00
Jared Roesch
754aaea88c Remove snake_case names from ty.rs 2015-07-08 12:38:19 -07:00
bors
5d53921eff Auto merge of #26747 - huonw:stability-issue, r=alexcrichton
This takes an issue number and points people to it in the printed error
message. This commit does not make it an error to have no `issue` field.
2015-07-07 17:41:43 +00:00
Huon Wilson
69d340a40d rustc: implement unstable(issue = "nnn").
This takes an issue number and points people to it in the printed error
message. This commit does not make it an error to have no `issue` field.
2015-07-06 11:35:39 -07:00
bors
42e545ffa7 Auto merge of #26694 - eddyb:method-nan, r=arielb1
`MethodCallee` now has no information about the method, other than its `DefId`.
The previous bits of information can be recovered as follows:
```rust
let method_item = tcx.impl_or_trait_item(callee.def_id);
let container = method_item.container();
```
The method is inherent if `container` is a `ty::ImplContainer`:
* the `impl` the method comes from is `container.id()`

The method is a trait method if `container` is a `ty::TraitContainer:
* the `trait` the method is part of is `container.id()`
* a `ty::TraitRef` can be constructed by putting together:
 * `container.id()` as the `trait` ID
 * `callee.substs.clone().method_to_trait()` as the `trait` substs (including `Self`)
* the above `trait_ref` is a valid `T: Trait<A, B, C>` predicate
* selecting `trait_ref` could result in one of the following:
 * `traits::VtableImpl(data)`: static dispatch to `data.impl_def_id`
 * `traits::VtableObject(data)`: dynamic dispatch, with the vtable index:
`traits::get_vtable_index_of_object_method(tcx, data, callee.def_id)`
 * other variants of `traits::Vtable`: various other `impl` sources
2015-07-04 18:49:28 +00:00
Eduard Burtescu
d256eb1c5d rustc: remove MethodOrigin and use the container to distinguish inherent methods. 2015-07-04 17:51:31 +03:00
Eduard Burtescu
536e71b78f rustc: compute the vtable base of a supertrait during selection. Fixes #26339. 2015-07-04 17:51:30 +03:00
Ariel Ben-Yehuda
90fcf261f2 Remove outdated errors for mutating strings 2015-07-04 16:17:26 +03:00
Eduard Burtescu
96d24a5c58 rustc: remove MethodOrigin::Object and use traits::VtableObject instead. 2015-07-04 06:21:00 +03:00
Eduard Burtescu
5620a58791 rustc_lint: use traits::select for methods in unconditional_recursion. 2015-07-04 06:21:00 +03:00
Eduard Burtescu
70365ed911 rustc: simplify ty::MethodOrigin and avoid trait item indices. 2015-07-04 06:21:00 +03:00
Eduard Burtescu
fe354e58bd rustc: remove unused MethodStaticClosure variant of MethodOrigin. 2015-07-04 06:21:00 +03:00
Niko Matsakis
db5f3bc65c Fix some merge conflicts 2015-07-03 19:42:55 -04:00
Niko Matsakis
1e7a6b880c After inferring regions, scan for any bounds that are due to a lifetime
bound that is likely to change. In that case, it will change to 'static,
so then scan down the graph to see whether there are any hard
constraints that would prevent 'static from being a valid value
here. Report a warning.
2015-07-03 19:42:35 -04:00
Niko Matsakis
909957793e Add a boolean flag to ExistentialBounds tracking whether the
region-bound is expected to change in Rust 1.3, but don't use it for
anything in this commit. Note that this is not a "significant" part of
the type (it's not part of the formal model) so we have to normalize
this away or trans starts to get confused because two equal types wind
up with distinct LLVM types.
2015-07-03 19:42:35 -04:00
Niko Matsakis
ef85338175 Code up the new lifetime default rules, but leave them disabled
for now.
2015-07-03 19:42:35 -04:00
bors
f027bdc1c8 Auto merge of #26378 - arielb1:unused-mut, r=pnkfelix
This makes it somewhat more aggressive, so this is kind-of a [breaking-change] for these compiling with `#[deny(unused_mut)]`.

r? @pnkfelix
2015-07-03 21:31:46 +00:00
bors
50cb22f8e0 Auto merge of #26713 - GuillaumeGomez:patch-3, r=Manishearth
r? @Manishearth
2015-07-02 14:23:02 +00:00
bors
99ca63fbd8 Auto merge of #26712 - GuillaumeGomez:patch-2, r=Manishearth
Part of #24407.
cc @michaelsproul
r? @Manishearth
2015-07-02 10:51:50 +00:00
bors
f635b2f0ad Auto merge of #26722 - arielb1:log-deadlock, r=eddyb
These are RefCell deadlocks that cause the rustc task to die with the stderr
lock held, causing a real deadlock.

Fixes #26717.

r? @eddyb
2015-07-02 07:47:29 +00:00
bors
dd8fee0ae6 Auto merge of #26691 - nrc:mem, r=alexcrichton
Reports the resident set size after each pass (linux-only).

r? @huonw or @alexcrichton
2015-07-02 04:42:50 +00:00
bors
560b1dab15 Auto merge of #26677 - jroesch:fulfillment-context-refactor, r=nrc
This patch implements the next chunk of flattening out the type checking context. In a series of patches I moved around the necessary state and logic in order to delete the `Typer` and `ClosureTyper` traits. My next goal is to clean the interfaces and start to move the normalization code behind them.

r? @nrc I hope my PR is coherent, doing this too late at night ;)
2015-07-02 03:10:25 +00:00
bors
1768b1090a Auto merge of #26688 - nrc:map-parent-2, r=manishearth
r? @Manishearth
2015-07-02 01:40:28 +00:00
Nick Cameron
7713e141b7 Report memory use in time-passes
Reports the resident set size after each pass (linux-only).
2015-07-02 09:36:32 +12:00
Nick Cameron
8261599e62 Refactoring 2015-07-02 08:56:55 +12:00
Ariel Ben-Yehuda
2fc8571861 Fix deadlocks with RUST_LOG=rustc::middle::ty
These are RefCell deadlocks that cause the rustc task to die with the stderr
lock held, causing a real deadlock.

Fixes #26717.
2015-07-01 23:08:40 +03:00
Jared Roesch
ce089e50a4 Address nits 2015-07-01 13:08:25 -07:00
Guillaume Gomez
28d2b39f45 Add E0277 error explanation 2015-07-01 19:15:53 +02:00
Guillaume Gomez
0ca7699837 Add examples in error explanation E0267 and E0268 2015-07-01 19:14:27 +02:00
bors
dc309d79e9 Auto merge of #26686 - arielb1:associated-type-defaults-actually-work, r=eddyb
Fixes #26636.

r? @eddyb
2015-06-30 21:39:46 +00:00
Ariel Ben-Yehuda
a18d9842ed Make the unused_mut lint smarter with respect to locals.
Fixes #26332
2015-07-01 00:12:12 +03:00
Ariel Ben-Yehuda
cebb118bff Actually encode default associated types
Fixes #26636
2015-06-30 22:03:25 +03:00
bors
85361528bc Auto merge of #26669 - frewsxcv:diagnostics-https, r=huonw
None
2015-06-30 15:13:05 +00:00
Jared Roesch
7a8f83a6e5 Clean up patch 2015-06-30 02:41:40 -07:00
Jared Roesch
9faae6a5ca Remove Typer and ClosureTyper
This commit finalizes the work of the past commits by fully moving the fulfillment context into
the InferCtxt, cleaning up related context interfaces, removing the Typer and ClosureTyper
traits and cleaning up related intefaces
2015-06-30 02:41:40 -07:00
Jared Roesch
05c57e0e6a Remove Typer + ClosureTyper impls for BlockS 2015-06-30 02:41:02 -07:00
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
Nick Cameron
15dcb5bfc5 Alternate method 2015-06-30 17:21:26 +12:00
Nick Cameron
b23ddc60e9 Implement get_enclosing_scope and use it in save-analysis 2015-06-30 17:21:26 +12:00
Nick Cameron
bbf0daa192 Add parent_node to ast_map 2015-06-30 17:21:26 +12:00
Corey Farwell
e834c0348f Link to docs from error explanations via HTTPS 2015-06-29 17:23:02 -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