Commit Graph

4393 Commits

Author SHA1 Message Date
bors
d4d4206e56 Auto merge of #26683 - eefriedman:const-eval-hint, r=pnkfelix
The "hint" mechanism is essentially used as a workaround to compute
types for expressions which have not yet been type-checked. This
commit clarifies that usage, and limits the effects to the places
where it is currently necessary.

Fixes #26210.
2015-07-22 12:49:06 +00:00
Andrew Paseltiner
18f115c2bb update compile-fail test for #21174 to account for #27127 2015-07-21 16:58:26 -04:00
bors
5dbddfb210 Auto merge of #26935 - oli-obk:const_val_description, r=eddyb
r? @eddyb 

Adding new variants is annoying as one needs to modify all these places that **don't** handle the new variant.

I chose not to use `Display` as I don't think it is appropriate.
2015-07-21 16:14:46 +00:00
bors
2afe47d168 Auto merge of #27160 - brson:revdoc, r=huonw
This reverts commit 00130cff99.

As mentioned in a regression report[1], this caused a notable amount
of breakage. Because there's a plan to mitigate[2] this type of
breakage, I'm reverting this until then.

[1]: https://internals.rust-lang.org/t/new-crater-reports-1-1-stable-vs-beta-2015-07-10-and-nightly-2015-07-10/2358
[2]: https://github.com/rust-lang/rfcs/pull/1193
2015-07-21 11:32:54 +00:00
Nick Cameron
bf34187a2f Test 2015-07-21 21:55:19 +12:00
bors
2fe870a5a7 Auto merge of #26831 - arielb1:lifetime-fixes, r=nikomatsakis
r? @nikomatsakis
2015-07-20 19:46:46 +00:00
Brian Anderson
9191a78955 Revert "Fix missing_docs lint for const and static."
This reverts commit 00130cff99.

As mentioned in a regression report[1], this caused a notable amount
of breakage.  Because there's a plan to mitigate[2] this type of
breakage, I'm reverting this until then.

[1]: https://internals.rust-lang.org/t/new-crater-reports-1-1-stable-vs-beta-2015-07-10-and-nightly-2015-07-10/2358
[2]: https://github.com/rust-lang/rfcs/pull/1193
2015-07-20 10:44:46 -07:00
bors
18557500cb Auto merge of #27026 - nagisa:overflowing-unsigned, r=pnkfelix
This commit fixes the negate_unsigned feature gate to appropriately
account for inferred variables.

This is technically a [breaking-change], but I’d consider it a bug fix.

cc @brson for your relnotes.

Fixes https://github.com/rust-lang/rust/issues/24676
Fixes #26840 
Fixes https://github.com/rust-lang/rust/issues/25206
2015-07-20 16:38:33 +00:00
bors
32a12c8dd0 Auto merge of #27118 - apasel422:issue-20825, r=alexcrichton
closes #20825
2015-07-20 10:20:58 +00:00
Simonas Kazlauskas
0ca8e4994e Convert negate_unsigned feature gate to a warning 2015-07-20 12:24:16 +03:00
bors
ef04b07239 Auto merge of #27120 - apasel422:associated-item-error, r=arielb1
Previously, these would both be labeled as methods.
2015-07-20 01:46:20 +00:00
bors
be23d44a53 Auto merge of #27065 - marcusklaas:loop-label, r=nrc
This closes https://github.com/rust-lang/rust/issues/27042.

I'd love to know if there's a way to make a regression test for this!
2015-07-20 00:13:22 +00:00
Ariel Ben-Yehuda
34309cdf12 implement 'a:'static region bounds
Fixes #22863.
2015-07-20 00:16:35 +03:00
Andrew Paseltiner
60734a65de add test for #15919
closes #15919
2015-07-19 17:06:13 -04:00
Andrew Paseltiner
b684826cab add test for #20162
closes #20162
2015-07-19 15:39:26 -04:00
Andrew Paseltiner
ce856a55f6 add separate errors for out-of-place associated consts and types
Previously, these would both be labeled as methods.
2015-07-19 15:32:24 -04:00
Andrew Paseltiner
7d984ef6df split "has incompatible type for trait" errors into multiple lines
closes #21332
2015-07-18 21:14:36 -04:00
Andrew Paseltiner
adf753e529 add tests for #20825
closes #20825
2015-07-18 18:03:30 -04:00
bors
a27fed7cbd Auto merge of #27096 - apasel422:issue-26217, r=nikomatsakis
closes #26217

r? @nikomatsakis
2015-07-18 11:02:58 +00:00
Marcus Klaas
12963606d0 Include label in the span of loops 2015-07-18 11:53:55 +02:00
bors
3f50dca386 Auto merge of #27085 - Ryman:gh17546, r=alexcrichton
This also changes how variant values are printed in errors, they are no
longer printed in their parent scope. As far as I can tell, this is
leftover from pre-namespacing of enums.

Closes #17546.
2015-07-18 06:02:50 +00:00
Eli Friedman
6bdfb05347 Clarify the usage of "hints" in const_eval.
The "hint" mechanism is essentially used as a workaround to compute
types for expressions which have not yet been type-checked. This
commit clarifies that usage, and limits the effects to the places
where it is currently necessary.

Fixes #26210.
2015-07-17 18:29:34 -07:00
Andrew Paseltiner
27188bbefe treat for<'a> T: 'a as T: 'static
closes #26217
2015-07-17 15:41:34 -04:00
bors
e05ac3938b Auto merge of #27045 - nikomatsakis:better-object-defaults-error, r=pnkfelix
Transition to the new object lifetime defaults, replacing the old defaults completely.

r? @pnkfelix 

This is a [breaking-change] as specified by [RFC 1156][1156] (though all cases that would break should have been receiving warnings starting in Rust 1.2). Types like `&'a Box<Trait>` (or `&'a Rc<Trait>`, etc) will change from being interpreted as `&'a Box<Trait+'a>` to `&'a Box<Trait+'static>`. To restore the old behavior, write the `+'a` explicitly. For example, the function:


```rust
trait Trait { }
fn foo(x: &Box<Trait>) { ... }
```

would be rewritten as:

```rust
trait Trait { }
fn foo(x: &'a Box<Trait+'a>) { ... }
```

if one wanted to preserve the current typing.

[1156]: https://github.com/rust-lang/rfcs/blob/master/text/1156-adjust-default-object-bounds.md
2015-07-17 18:35:50 +00:00
Kevin Butler
b416762a5f Improve error message for variant values used as types
This also changes how variant values are printed in errors, they are no
longer printed in their parent scope. As far as I can tell, this is
leftover from pre-namespacing of enums.

Closes #17546.
2015-07-17 15:24:02 +01:00
Manish Goregaokar
ef9b9cebe3 Rollup merge of #25993 - nham:fix_23969, r=nikomatsakis
Adds two error codes, one for duplicate associated constants and one for types. I'm not certain these should each have their own code, but E0201 is already solely for duplicate associated functions so at least it kinda matches. This will lead to somewhat redundant error explanations, but that's nothing new!

Fixes #23969.
2015-07-17 19:06:23 +05:30
Manish Goregaokar
7c202a39c1 Fixup test 2015-07-16 16:37:41 +05:30
Manish Goregaokar
b64af26625 Rollup merge of #27018 - arielb1:enum-update, r=eddyb
Fixes #26948.

r? @eddyb
2015-07-16 16:37:39 +05:30
Manish Goregaokar
31d6716d9c Rollup merge of #26988 - frewsxcv:regression-tests, r=alexcrichton
"body": null,
2015-07-16 16:37:39 +05:30
Manish Goregaokar
828ebb805a Rollup merge of #26819 - P1start:ref-suggestion, r=nikomatsakis
The error now looks like this:

```
<anon>:4:9: 4:10 error: use of moved value: `x` [E0382]
<anon>:4     foo(x);
                 ^
<anon>:3:9: 3:10 note: `x` moved here because it has type `Box<i32>`, which is moved by default
<anon>:3     let y = x;
                 ^
<anon>:3:9: 3:10 help: use `ref` to take a reference instead:
<anon>:      let ref y = x;
```
2015-07-16 14:12:57 +05:30
Nick Hamann
560bb0af6d Better detection of duplicate associated items.
Expands E0201 to be used for any duplicate associated items, not just duplicate
methods/functions. It also correctly detects when two different kinds of items
(like a constant and a method) have the same name.

Fixes #23969.
2015-07-15 13:32:29 -05:00
Niko Matsakis
de6b3c282e Transition to the new object lifetime defaults, replacing the old
defaults completely.
2015-07-14 19:36:15 -04:00
Simonas Kazlauskas
0c9e3dc75c Fix negate_unsigned feature gate check
This commit fixes the negate_unsigned feature gate to appropriately
account for infered variables.

This is technically a [breaking-change].
2015-07-14 21:48:43 +03:00
Ariel Ben-Yehuda
a878f35d3b don't ICE when FRU is used on an enum variant
Fixes #26948.
2015-07-14 18:58:18 +03:00
Corey Farwell
7954096bc8 Add regression test for #21140
Closes #21140
2015-07-14 22:57:55 +09:00
bors
dd46cf8b22 Auto merge of #26241 - SimonSapin:derefmut-for-string, r=alexcrichton
See https://github.com/rust-lang/rfcs/issues/1157
2015-07-13 23:47:06 +00:00
Simon Sapin
3226858e50 Fix tests for changes in #26241. 2015-07-13 23:28:58 +02:00
Corey Farwell
9d94ef5263 Add regression tests for #23595
Closes #23595
2015-07-13 22:25:20 +09:00
Corey Farwell
26ef17d1a9 Add regression test for #22312
Closes #22312
2015-07-13 22:25:19 +09:00
Oliver Schneider
441b9940ec simplify processing of ConstVal objects when not all variants are legal 2015-07-13 10:53:16 +02:00
Nick Cameron
7fb8208758 Don't ICE when missing owned_box lang item
Closes #20549
2015-07-13 11:53:16 +12:00
P1start
0bf9fbb6dd Suggest using ref inline in an error 2015-07-11 13:59:09 +12:00
bors
afe25a2d6a Auto merge of #26515 - quantheory:check_enum_recursion, r=nrc
Fixes #23302.

Note that there's an odd situation regarding the following, most likely due to some inadequacy in `const_eval`:

```rust
enum Y {
    A = 1usize,
    B,
}
```

In this case, `Y::B as usize` might be considered a constant expression in some cases, but not others.  (See #23513, for a related problem where there is only one variant, with no discriminant, and it doesn't behave nicely as a constant expression either.)

Most of the complexity in this PR is basically future-proofing, to ensure that when `Y::B as usize` is fully made to be a constant expression, it can't be used to set `Y::A`, and thus indirectly itself.
2015-07-09 03:41:22 +00:00
Sean Patrick Santos
b952c0e4e9 Add comments about the checks for recursive variant definition, as requested by @nrc. 2015-07-08 20:51:47 -06:00
bors
fd8e175c4e Auto merge of #26859 - arielb1:const-deref-again, r=eddyb
Fixes #25901 

r? @eddyb
2015-07-08 03:11:36 +00: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
Ariel Ben-Yehuda
45fd29621d mark user-defined derefs as non-constant
Fixes #25901
2015-07-07 18:48:28 +03:00
bors
ed14593d98 Auto merge of #26699 - eddyb:unstable-prelude_import, r=huonw
Closes #26690.
2015-07-07 07:34:56 +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
Ariel Ben-Yehuda
78761d64a9 don't use type_parameter_def during astconv
astconv is called when converting the type-parameter, which leads to
a crash.

Fixes #26812.
2015-07-06 18:58:54 +03:00
bors
7809e76eb6 Auto merge of #26464 - Gankro:send, r=alexcrichton
Vec contains `Unique<T>` and some usizes, this is already derived.
2015-07-05 22:10:21 +00:00
bors
5d3b0f1f6b Auto merge of #26473 - Eljay:missing_docs, r=alexcrichton
Fixes #24249

I've tagged all items that were missing docs to allow them to compile for now, the ones in core/num should probably be documented at least.

This is also a breaking change for any crates using `#[deny(missing_docs)]` that have undocumented constants, not sure there is any way to avoid this without making it a separate lint?
2015-07-05 20:37:26 +00:00
Eduard Burtescu
6a3b385cbd Feature-gate #[prelude_import]. 2015-07-05 22:35:20 +03:00
bors
c83f8f9bd9 Auto merge of #26770 - arielb1:str-mut-idx, r=eddyb
r? @eddyb

This doesn't seem to make any code valid because the `IndexMut` impls are missing.
2015-07-04 14:44:45 +00:00
Ariel Ben-Yehuda
90fcf261f2 Remove outdated errors for mutating strings 2015-07-04 16:17:26 +03:00
Ariel Ben-Yehuda
6b27005f2f require reimplementations of all items when a defaulted associated type is overriden
This is a
[breaking-change]
but it follows the RFC (not sure whether it will be accepted).
2015-07-04 14:09:26 +03:00
Niko Matsakis
db5f3bc65c Fix some merge conflicts 2015-07-03 19:42:55 -04:00
Niko Matsakis
65a456df43 Now that I made the warning smarter, these tests no longer require modification 2015-07-03 19:42:35 -04:00
Niko Matsakis
18e9007ac2 Adjust tests to silence warnings (or record them, as appropriate). 2015-07-03 19:42:35 -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
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
Nick Hamann
c9c5ea7c13 Add a regression test for #8640.
This doesn't add a test for the main problem in #8640 since it seems that
was already fixed (including a test) in PR #19522. This just adds a test
for a program mentioned in the comments that used to erroneously compile.

Closes #8640.
2015-07-01 12:22:42 -05: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
Steve Klabnik
cf1c5b22d8 Rollup merge of #26622 - tshepang:indents, r=sanxiyn 2015-06-30 15:37:44 -04:00
bors
27975c49a6 Auto merge of #26667 - arielb1:audit-walk, r=eddyb
This was originally motivated by checking for HRTB hygiene, but I found several other bugs on the way.

This does not fix the biggest user of ty_walk, which is dtorck - I would prefer to coordinate that with @pnkfelix.

r? @eddyb
2015-06-30 01:45:46 +00:00
Huon Wilson
900af2c6d9 lint: default methods must be called on Self to unconditionally recur.
This catches the case when a trait defines a default method that calls
itself, but on a type that isn't necessarily `Self`, e.g. there's no
reason that `T = Self` in the following, so the call isn't necessarily
recursive (`T` may override the call).

    trait Bar {
        fn method<T: Bar>(&self, x: &T) {
            x.method(x)
        }
    }

Fixes #26333.
2015-06-29 16:00:54 -07:00
Huon Wilson
b1931e48a0 lint: only consider actual calls as unconditional recursion.
Specifically, just mentioning the function name as a value is fine, as
long as it isn't called, e.g. `fn main() { let _ = main; }`.

Closes #21705.
2015-06-29 15:59:37 -07: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
Ariel Ben-Yehuda
a1110bc3a3 Fix off-by-one error in default-type-parameter checking
Fixes #18183
2015-06-29 21:27:33 +03:00
Tshepang Lekhonkhobe
7d0198d5d2 test: fix some indents 2015-06-27 15:45:48 +02:00
bors
b213c947f8 Auto merge of #26558 - nham:fix_24357, r=alexcrichton
Fixes #24357.

Also adds a (totally separate) regression test, which

Closes #18119
2015-06-25 10:39:09 +00:00
Nick Hamann
db9af26d76 Add a regression test for #18119.
Closes #18119
2015-06-24 20:15:23 -05:00
Nick Hamann
0cc26b2058 Use correct type for "use of moved value" error with closures.
Fixes #24357
2015-06-24 20:15:11 -05:00
Nick Hamann
079bfad72d Add a regression test for #19538.
Closes #19538.
2015-06-24 12:42:05 -05:00
Nick Hamann
4982b23c22 Add a regression test for #23305.
Closes #23305.
2015-06-23 21:19:34 -05: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
Sean Patrick Santos
faf73028c9 Fix issue #23302, ICE on recursively defined enum variant discriminant. 2015-06-22 20:55:57 -06:00
Gulshan Singh
a006a82724 Suggest missing trait bounds when a method exists but the bounds aren't satisfied 2015-06-22 20:28:46 -04:00
Seo Sanghyeon
6f7b4ce65a Do not consider fields matched by wildcard patterns to be used 2015-06-22 21:36:14 +09:00
bors
31d9aee684 Auto merge of #26394 - arielb1:implement-rfc401-part2, r=nrc
This makes them compliant with the new version of RFC 401 (i.e.
    RFC 1052).

Fixes #26391. I *hope* the tests I have are enough.

This is a [breaking-change]

r? @nrc
2015-06-22 00:11:00 +00:00
Alexis Beingessner
3f56e9a984 remove erroneous error check 2015-06-21 16:16:14 -07: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
Eljay
00130cff99 Fix missing_docs lint for const and static. 2015-06-21 16:02:05 +01:00
Manish Goregaokar
6bff14ffea Rollup merge of #26451 - nham:fix_18058, r=arielb1
Fixes #18058.
2015-06-20 21:40:37 +05:30
bors
3e4d1b4dec Auto merge of #26407 - arielb1:paren-binding, r=eddyb
r? @eddyb
2015-06-20 09:44:43 +00:00
Nick Hamann
a6cc4dd308 Add a regression test for #18058.
Fixes #18058.
2015-06-20 01:31:31 -05:00
Paul Faria
0230a530ce fixup! Finished implementing proper function check (through FnOnce) and moved tests to new file and updated tests 2015-06-19 21:04:13 -04:00
Paul Faria
9932870833 Finished implementing proper function check (through FnOnce) and moved tests to new file and updated tests 2015-06-19 21:04:12 -04:00
Paul Faria
3f8a70b613 Fixed note message to display expression in recommendations 2015-06-19 21:02:49 -04:00
Paul Faria
9adb3dfdcb Uncomplete fix for #2392 2015-06-19 21:01:39 -04:00
Eduard Burtescu
dfbc9608ce rustc: replace Repr/UserString impls with Debug/Display ones. 2015-06-19 01:36:20 +03:00
bors
ff8fee180b Auto merge of #26147 - arielb1:assoc-trans, r=nikomatsakis
Fixes #25700

r? @nikomatsakis
2015-06-18 21:34:04 +00:00
Ariel Ben-Yehuda
2bce9d0ff5 Fix #23589 2015-06-18 23:18:15 +03:00
bors
9cc0b22475 Auto merge of #26192 - alexcrichton:features-clean, r=aturon
This commit shards the all-encompassing `core`, `std_misc`, `collections`, and `alloc` features into finer-grained components that are much more easily opted into and tracked. This reflects the effort to push forward current unstable APIs to either stabilization or removal. Keeping track of unstable features on a much more fine-grained basis will enable the library subteam to quickly analyze a feature and help prioritize internally about what APIs should be stabilized.

A few assorted APIs were deprecated along the way, but otherwise this change is just changing the feature name associated with each API. Soon we will have a dashboard for keeping track of all the unstable APIs in the standard library, and I'll also start making issues for each unstable API after performing a first-pass for stabilization.
2015-06-18 19:14:52 +00:00
Ariel Ben-Yehuda
56d765d0eb Simplify and type_known_to_meet_builtin_bound and make it more correct when
associated types are involved.
2015-06-18 20:51:43 +03:00
bors
f451812763 Auto merge of #26385 - nham:fix_25396, r=alexcrichton
Currently in the E0252 message, traits and modules are all called types (as in "a type named `Foo` has already been imported", even when `Foo` was a trait or module). This commit changes that to additionally detect when the import in question is a trait or module and report it accordingly.

Fixes #25396.
2015-06-18 16:17:04 +00:00
Ariel Ben-Yehuda
ea7637ebc0 Prohibit casts between fat pointers to different traits
This makes them compliant with the new version of RFC 401 (i.e.
    RFC 1052).

Fixes #26391. I *hope* the tests I have are enough.

This is a [breaking-change]
2015-06-18 15:51:06 +03:00
bors
1ef14d9411 Auto merge of #26358 - nham:fix_24081, r=alexcrichton
Previously, it said "import `Foo` conflicts with existing submodule" even
when it was a type alias, enum, or trait. The message now says the conflict
is with "type in this module" in the case of the first two, and "trait in
this module" for the last one.

Fixes #24081.
2015-06-18 10:30:46 +00:00
bors
1d33318018 Auto merge of #26336 - dotdash:raw_ptr_coercions, r=nrc
Unlike coercing from reference to unsafe pointer, coercing between two
unsafe pointers doesn't need an AutoDerefRef, because there is no region
that regionck would need to know about.

In unoptimized libcore, this reduces the number of "auto_deref" allocas
from 174 to 4.
2015-06-18 03:16:40 +00:00
Nick Hamann
b637f6b1bd Fix the E0252 error message to use better names for things.
Currently in the E0252 message, traits and modules are all called types
(as in "a type named `Foo` has already been imported", even when `Foo` was
a trait or module). This commit changes that to additionally detect when
the import in question is a trait or module and report it accordingly.

Fixes #25396.
2015-06-17 19:41:55 -05:00
bors
713d9176ad Auto merge of #26326 - nikomatsakis:optimize-fulfillment-cache-in-tcx, r=pcwalton
When we successfully resolve a trait reference with no type/lifetime parameters, like `i32: Foo` or `Box<u32>: Sized`, this is in fact globally true. This patch adds a simple global to the tcx to cache such cases. The main advantage of this is really about caching things like `Box<Vec<Foo>>: Sized`. It also points to the need to revamp our caching infrastructure -- the current caches make selection cost cheaper, but we still wind up paying a high cost in the confirmation process, and in particular unrolling out dependent obligations. Moreover, we should probably do caching more uniformly and with a key that takes the where-clauses into account. But that's for later.

For me, this shows up as a reasonably nice win (20%) on Servo's script crate (when built in dev mode). This is not as big as my initial measurements suggested, I think because I was building my rustc with more debugging enabled at the time. I've not yet done follow-up profiling and so forth to see where the new hot spots are. Bootstrap times seem to be largely unaffected.

cc @pcwalton 

This is technically a [breaking-change] in that functions with unsatisfiable where-clauses may now yield errors where before they may have been accepted. Even before, these functions could never have been *called* by actual code. In the future, such functions will probably become illegal altogether, but in this commit they are still accepted, so long as they do not rely on the unsatisfiable where-clauses. As before, the functions still cannot be called in any case.
2015-06-17 22:50:17 +00:00
Alex Crichton
ce1a965cf5 Fallout in tests and docs from feature renamings 2015-06-17 09:07:16 -07:00
bors
e7a5a1c33a Auto merge of #25961 - sanxiyn:dead-variant-2, r=huonw
Rebase of #21468.

Fix #25960.
2015-06-17 13:30:31 +00:00
Nick Hamann
0c22cd7906 Fix error message for E0256 in certain cases.
Previously, it said "import `Foo` conflicts with existing submodule" even
when it was a type alias, enum, or trait. The message now says the conflict
is with "type in this module" in the case of the first two, and "trait in
this module" for the last one.

Fixes #24081.
2015-06-16 18:55:52 -05:00
Björn Steinbrink
cabd0682e9 Avoid deref/ref cycles for no-op coercions between unsafe pointers
Unlike coercing from reference to unsafe pointer, coercing between two
unsafe pointers doesn't need an AutoDerefRef, because there is no region
that regionck would need to know about.

In unoptimized libcore, this reduces the number of "auto_deref" allocas
from 174 to 4.
2015-06-16 14:10:52 +02:00
Niko Matsakis
13cee1e198 This new caching sometimes suppresses duplicate errors that occur in
different parts of the crate, so modify the test cases that were relying
on that to test distinct types etc.
2015-06-15 17:31:27 -04:00
Niko Matsakis
f0f13f86ef Rather than expanding the where-clauses in the environment over and over
again, do it once and then just remember the expanded form. At the same
time, filter globally nameable predicates out of the environment, since
they can cause cache errors (and they are not necessary in any case).
2015-06-15 17:31:27 -04:00
bors
73fb19c04a Auto merge of #26275 - arielb1:unconstrained-projection, r=nikomatsakis
Fixes #26262

Because this rejects code that previously compiled, this is a [breaking-change]

r? @nikomatsakis
2015-06-15 19:52:15 +00:00
Ariel Ben-Yehuda
3ca4d92cd6 Ensure projections are not counted as constraining type parameters.
Fixes #26262
2015-06-13 17:59:10 +03:00
petrochenkov
bddb685e73 Use assert_eq! instead of assert! in tests 2015-06-13 14:55:55 +03:00
bors
a9f1e29c4e Auto merge of #26253 - steveklabnik:remove_old_ignored_tests, r=brson
Two commits here: one which removes a bunch of tests, and re-enables a few that work.

Second updates the syntax of one of the failing tests. It still doesn't pass, but at least it compiles.
2015-06-13 10:08:51 +00:00
Steve Klabnik
13b9a725ea Update dead-code-closure-bang
This stdlib function went away, so update it to use current syntax.
2015-06-12 14:16:49 -04:00
Steve Klabnik
bba934f19a ignore-test cleanup
Most of these are old, but some specific messages for specific tests:

* trait-contravariant-self.rs: failed due to a soundess hole:
  05e3248a79

* process-detatch: 15966c3c1f
  says "this test is being ignored until signals are implemented" That's
  not happening for a long time, and when it is, we'll write tests for
  it.

* deep-vector{,2}.rs: "too big for our poor macro infrastructure", and has
  been ignored over a year.

* borrowck-nested-calls.rs's FIXME #6268 was closed in favor of
  rust-lang/rfcs#811

* issue-15167.rs works properly now
* issue-9737.rs works properly now
* match-var-hygiene.rs works properly now

Addresses a chunk of #3965
2015-06-12 14:16:16 -04:00
Seo Sanghyeon
793d9fcb52 Add tests for tuple-like structs and dictionary-like enum variants 2015-06-12 21:09:17 +09:00
Seo Sanghyeon
16d5c83d5f Use more precise span when checking type definitions 2015-06-12 20:28:09 +09:00
Alexis Beingessner
2962b2681f validate stability against deprecation version 2015-06-11 17:18:46 -07:00
Ariel Ben-Yehuda
3be18f0edc Prevent raw pointers from being used as an explicit self
This can't be made to work with the current setup.

Fixes #26194.
2015-06-11 23:45:27 +03:00
Alexis Beingessner
5779fff543 update stability compile-fail tests 2015-06-11 10:49:29 -07:00
bors
fc9e424550 Auto merge of #26172 - nham:add_E0116, r=alexcrichton
Also improves the wording of the E0133 description.

cc #24407
2015-06-11 10:06:38 +00:00
Manish Goregaokar
7d9427e6cd Rollup merge of #26146 - steveklabnik:remove_unsafe_pointer, r=Gankro
Using two terms for one thing is confusing, these are called 'raw pointers' today.
2015-06-10 22:07:10 +05:30
Nick Hamann
c8b088eb38 Add explanation for E0116 and update the error message.
Also updates the reference on this point.
2015-06-10 02:18:14 -05:00
Steve Klabnik
2c75256c15 Exise 'unsafe pointer' in favor of 'raw pointer'
Using two terms for one thing is confusing, these are called 'raw pointers' today.
2015-06-09 16:49:24 -04:00
Steve Klabnik
a3cd5eb1bd Exise 'owned pointer' from the codebase
Still some references left to this old term, I've updated them to say boxes.

Related to #25851
2015-06-09 16:26:21 -04:00
bors
61c43b4733 Auto merge of #26091 - chellmuth:pub-struct-field-span, r=nrc
Issue: #26083 

Re-submitting https://github.com/rust-lang/rust/pull/26084

r? @nrc
2015-06-08 14:35:27 +00:00
Chris Hellmuth
905727246a Add license 2015-06-07 22:33:54 -06:00
Nick Fitzgerald
93d01eb443 Make the maximum edit distance of typo suggestions a function of the typo'd name's length. 2015-06-07 18:01:33 -07:00
Chris Hellmuth
2938d92a35 Add a regression test for public struct field spans 2015-06-07 17:29:09 -06:00
Ariel Ben-Yehuda
39e6855966 fix test fallout 2015-06-05 17:27:27 +03:00
bors
52e530af4c Auto merge of #25981 - nham:fix_E0201, r=alexcrichton
It seems better to use "associated function" here. Methods are associated functions that take a `self` parameter.
2015-06-04 11:48:58 +00:00
bors
06c6b3caaf Auto merge of #25743 - michaelsproul:match-diagnostics, r=nrc
Part of #24407.

Currently the diagnostics for range patterns are a bit wrong:

```rust
fn main() {
    match 5u32 {
        0 ... 10 => (),
        'a' ... 10 => (),
        10 ... 'z' => (),
        "what" ... 10 => (),
        "what" ... "well" => (),
        10 ... "what" => ()
    }
}
```

```
range.rs:4:9: 4:19 error: mismatched types in range:
 expected integral variable,
    found char [E0211]
range.rs:4         'a' ... 10 => (),
                   ^~~~~~~~~~
range.rs:4:9: 4:16 error: only char and numeric types are allowed in range [E0029]
range.rs:4         'a' ... 10 => (),
                   ^~~~~~~
range.rs:4:9: 4:19 error: mismatched types:
 expected `u32`,
    found `char`
(expected u32,
    found char) [E0308]
range.rs:4         'a' ... 10 => (),
                   ^~~~~~~~~~
range.rs:5:9: 5:19 error: mismatched types in range:
 expected char,
    found integral variable [E0211]
range.rs:5         10 ... 'z' => (),
                   ^~~~~~~~~~
range.rs:5:9: 5:15 error: only char and numeric types are allowed in range [E0029]
range.rs:5         10 ... 'z' => (),
                   ^~~~~~
range.rs:6:9: 6:22 error: mismatched types in range:
 expected integral variable,
    found &-ptr [E0211]
range.rs:6         "what" ... 10 => (),
                   ^~~~~~~~~~~~~
range.rs:6:9: 6:19 error: only char and numeric types are allowed in range [E0029]
range.rs:6         "what" ... 10 => (),
                   ^~~~~~~~~~
range.rs:6:9: 6:22 error: mismatched types:
 expected `u32`,
    found `&'static str`
(expected u32,
    found &-ptr) [E0308]
range.rs:6         "what" ... 10 => (),
                   ^~~~~~~~~~~~~
range.rs:7:9: 7:19 error: only char and numeric types are allowed in range [E0029]
range.rs:7         "what" ... "well" => (),
                   ^~~~~~~~~~
range.rs:7:9: 7:26 error: mismatched types:
 expected `u32`,
    found `&'static str`
(expected u32,
    found &-ptr) [E0308]
range.rs:7         "what" ... "well" => (),
                   ^~~~~~~~~~~~~~~~~
range.rs:8:9: 8:22 error: mismatched types in range:
 expected &-ptr,
    found integral variable [E0211]
range.rs:8         10 ... "what" => ()
                   ^~~~~~~~~~~~~
range.rs:8:9: 8:15 error: only char and numeric types are allowed in range [E0029]
range.rs:8         10 ... "what" => ()
                   ^~~~~~
error: aborting due to 12 previous errors
```

The problems here are:

1. The type of the end of the range is used to predict the type of the start (only mildly counter intuitive).
2. E0029 is erroneously generated for `char ... num` and `num ... char`.
2. `u32` is mentioned.
3. Errors which are essentially the same are reported multiple times.

I've attempted to fix this by checking the requirements in a different order. The output I've achieved for the above example is:

```
/home/michael/Temp/range.rs:4:17: 4:22 error: mismatched types in range:
 expected char,
    found integral variable [E0211]
/home/michael/Temp/range.rs:4         'a' ... 10 => (),
                                              ^~~~~
/home/michael/Temp/range.rs:5:16: 5:22 error: mismatched types in range:
 expected integral variable,
    found char [E0211]
/home/michael/Temp/range.rs:5         10 ... 'z' => (),
                                             ^~~~~~
/home/michael/Temp/range.rs:6:9: 6:19 error: only char and numeric types are allowed in range [E0029]
/home/michael/Temp/range.rs:6         "what" ... 10 => (),
                                      ^~~~~~~~~~
/home/michael/Temp/range.rs:6:9: 6:19 help: run `rustc --explain E0029` to see a detailed explanation
/home/michael/Temp/range.rs:6:9: 6:19 note: Start type: &'static str
End type: _
/home/michael/Temp/range.rs:6         "what" ... 10 => (),
                                      ^~~~~~~~~~
/home/michael/Temp/range.rs:7:9: 7:26 error: only char and numeric types are allowed in range [E0029]
/home/michael/Temp/range.rs:7         "what" ... "well" => (),
                                      ^~~~~~~~~~~~~~~~~
/home/michael/Temp/range.rs:7:9: 7:26 help: run `rustc --explain E0029` to see a detailed explanation
/home/michael/Temp/range.rs:7:9: 7:26 note: Start type: &'static str
End type: &'static str
/home/michael/Temp/range.rs:7         "what" ... "well" => (),
                                      ^~~~~~~~~~~~~~~~~
/home/michael/Temp/range.rs:8:16: 8:25 error: only char and numeric types are allowed in range [E0029]
/home/michael/Temp/range.rs:8         10 ... "what" => ()
                                             ^~~~~~~~~
/home/michael/Temp/range.rs:8:16: 8:25 help: run `rustc --explain E0029` to see a detailed explanation
/home/michael/Temp/range.rs:8:16: 8:25 note: Start type: _
End type: &'static str
/home/michael/Temp/range.rs:8         10 ... "what" => ()
                                             ^~~~~~~~~
error: aborting due to 5 previous errors
```

I think this is already tonnes better, but the `Start type/End type` stuff could be neater. I don't think there's really any need to start a `note:` block but I wanted to get some feedback on this. I'd also appreciate advice on how to print the integer types as something other than `_`.
2015-06-04 01:02:41 +00:00
Steve Klabnik
5235065d74 Remove #[static_assert]
This was always a weird feature, and isn't being used in the compiler.
Static assertions should be done better than this.

This implements RFC #1096.

Fixes #13951
Fixes #23008
Fixes #6676

This is behind a feature gate, but that's still a

[breaking-change]
2015-06-03 09:38:13 -04:00
Nick Hamann
037456a593 Make E0201 detect when duplicate function is a method. 2015-06-03 01:34:39 -05:00
Michael Sproul
25d0ef347a Improve diagnostic messages for range patterns. 2015-06-03 16:15:15 +10:00
Nick Hamann
f1db9cd7c3 s/method/associated function/ in E0201 2015-06-02 22:15:50 -05:00
Seo Sanghyeon
5af8b5f72b Extend dead code lint to detect more unused enum variants 2015-06-02 20:31:40 +09:00
Steve Klabnik
c0a41b9999 Rollup merge of #25873 - nham:update_E0015, r=Aatch
The E0397 explanation, as I've written it, isn't really an explanation, but I'm not sure what to put here. I will happily take suggestions.

Partially addresses https://github.com/rust-lang/rust/issues/25851
2015-05-29 15:24:47 -04:00
Niko Matsakis
808b411244 New tests for cross-crate usages of const fn and so forth 2015-05-29 11:52:59 -04:00
Niko Matsakis
2c5e784d6f add const_fn features 2015-05-29 09:42:54 -04:00
Niko Matsakis
710270d9c0 Add feature-gate to calling const fn 2015-05-29 09:42:53 -04:00
Nick Hamann
7e78e708fb Convert mutable statics error to have error code and add explanation.
Also changes 'owned pointers' => 'boxes' in the error message.
2015-05-28 19:28:07 -05:00
bors
6a3d55abf0 Auto merge of #25840 - arielb1:ptr-compare-fixes, r=nrc
Fixes #25826.
2015-05-28 03:51:58 +00:00
Ariel Ben-Yehuda
080311d1f9 Prevent comparison and dereferencing of raw pointers in constexprs
Fixes #25826.
2015-05-28 03:22:44 +03:00
bors
f3819f063c Auto merge of #25796 - arielb1:default-assoc, r=eddyb
r? @eddyb

Fixes #19476.
2015-05-27 22:05:09 +00:00
Manish Goregaokar
aec0a4ba83 Rollup merge of #25806 - nrc:20184-msg, r=alexcrichton
Closes #20184
2015-05-28 01:12:30 +05:30
Ariel Ben-Yehuda
c68e65251c test fixes 2015-05-27 20:31:56 +03:00
bors
eb16ad6e71 Auto merge of #25790 - eddyb:oh-snap-ctfe-arrived, r=alexcrichton 2015-05-27 08:47:53 +00:00
Eduard Burtescu
377b0900ae Use const fn to abstract away the contents of UnsafeCell & friends. 2015-05-27 11:19:03 +03:00
bors
a2cf2c66e0 Auto merge of #25791 - barosl:use-paths-as-items, r=alexcrichton
Currently, for `use` declarations with multiple paths, only the `use` item itself is saved in the AST map, not the individual path nodes. This can lead to a problem when a span of a specific path node is needed.

For example, #24818 caused an ICE because of this, in `ImportResolver::check_for_conflicting_import()`.

Fixes #25763.
2015-05-27 07:14:45 +00:00
Nick Cameron
ff68204880 Add a WONTFIX message to a failing test.
Closes #20184
2015-05-27 10:16:49 +12:00
Nick Hamann
fbef978fd7 Pluralize E0087-E0090 messages based on number of parameters. 2015-05-26 15:12:52 -05:00
Nick Hamann
d8d4a6a842 Fix typo. 2015-05-26 15:12:52 -05:00
bors
6a003abc37 Auto merge of #25593 - nham:E0210_E0326, r=alexcrichton
Changes:

 - adds explanations for E0185, E0186, E0202, E0326
 - fixes the explanation for E0053. The previous description was too narrow; there are other error cases.
 - changes the error message for E0202 to be specific for associated types, since it seems inherent associated constants are implemented.

Part of #24407
2015-05-26 18:30:42 +00:00
Ariel Ben-Yehuda
65a3245319 Add tests for fixed issues
Fixes #23037.
Fixes #25339.
2015-05-26 20:01:20 +03:00
bors
0ea80faae8 Auto merge of #25091 - quantheory:trait_associated_const_fixes, r=nikomatsakis
Closes #25046 (by rejecting the code that causes the ICE) and #24946. I haven't been able to deal with the array size or recursion issues yet for associated consts, though my hope was that the change I made for range match patterns might help with array sizes, too.

This PR is pretty much orthogonal to #25065.
2015-05-26 16:58:07 +00:00
Barosl Lee
0ae30e608c Associate each path in a use declaration with the item in the AST map
Currently, for `use` declarations with multiple paths, only the `use`
item itself is saved in the AST map, not the individual path nodes. This
can lead to a problem when a span of a specific path node is needed.

For example, #24818 caused an ICE because of this, in
`ImportResolver::check_for_conflicting_import()`.

Fixes #25763.
2015-05-26 17:42:56 +09:00
econoplas
43502adf07 - Fix regression of literal out of range check for negative i64 values which was introduced by commit 7b1916d253.
- Add missing test cases to test/compile-fail/lint-type-overflow.rs which would have detected the regression.
2015-05-25 07:42:16 -06:00
Sean Patrick Santos
8db699d18d Add diagnostic code for generic associated const error. 2015-05-21 21:12:49 -06:00
Niko Matsakis
df93deab10 Make various fixes:
- add feature gate
- add basic tests
- adjust parser to eliminate conflict between `const fn` and associated
constants
- allow `const fn` in traits/trait-impls, but forbid later in type check
- correct some merge conflicts
2015-05-21 11:47:30 -04:00
Nick Hamann
cc9d1de692 Add error explanation for E0202. 2015-05-20 00:38:10 -05:00
Ariel Ben-Yehuda
32fe2e3ad4 Address review commets
I think I didn't run tests properly - my second call to
select_all_obligations_or_error has made 3 tests fail. However, this is
just an error message change - integer fallback never worked with casts.
2015-05-19 17:42:14 +03:00
Ariel Ben-Yehuda
d9b9f4ee7d fix conflicts 2015-05-19 17:42:14 +03:00
Ariel Ben-Yehuda
9ee2335bfc Fix test fallout, and add some rather comprehensive tests. 2015-05-19 17:42:14 +03:00
Ariel Ben-Yehuda
83acebc462 Overhaul cast semantics and make them follow RFC401
This should hopefully fix all cast-related ICEs once and for all.

I managed to make diagnostics hate me and give me spurious "decoder error"
 - removing $build/tmp/extended-errors seems to fix it.
2015-05-19 17:42:14 +03:00
Sean Patrick Santos
fbe8066ac3 Catch associated consts that depend on type parameters in type checking.
Constants with values that depend on generic parameters or `Self` cause
ICEs in `check_const`, and are not yet accepted via RFC, so we need to
throw a proper error in these cases.
2015-05-17 15:30:32 -06:00
Nick Hamann
c69a152018 Add error explanations for E0072, E0073, E0121, E0178, E0371, E0372. 2015-05-17 15:53:12 -05:00
Manish Goregaokar
b3706de65a Rollup merge of #25503 - brson:betafix, r=cmr 2015-05-17 11:55:39 +05:30
bors
c23a9d42ea Auto merge of #25387 - eddyb:syn-file-loader, r=nikomatsakis
This allows compiling entire crates from memory or preprocessing source files before they are tokenized.

Minor API refactoring included, which is a [breaking-change] for libsyntax users:
* `ParseSess::{next_node_id, reserve_node_ids}` moved to rustc's `Session`
* `new_parse_sess` -> `ParseSess::new`
* `new_parse_sess_special_handler` -> `ParseSess::with_span_handler`
* `mk_span_handler` -> `SpanHandler::new`
* `default_handler` -> `Handler::new`
* `mk_handler` -> `Handler::with_emitter`
* `string_to_filemap(sess source, path)` -> `sess.codemap().new_filemap(path, source)`
2015-05-17 00:05:34 +00:00
Eduard Burtescu
8cc9878f8d test/compile-fail: fix expected error message for non-UTF8 source. 2015-05-17 02:15:00 +03:00
Brian Anderson
bf15d040c0 Make a test compatible with the beta channel 2015-05-16 14:53:37 -07:00
bors
0d707d15f6 Auto merge of #25485 - XuefengWu:24968_err_msg_parse_self_type_2, r=nrc
fix #24968
report more friendly error message for Self when fn args
copy from https://github.com/rust-lang/rust/pull/25096
r? @nrc  @arielb1
2015-05-16 20:53:42 +00:00
Xuefeng Wu
7fe60c1636 fix error message in test 2015-05-16 21:39:48 +08:00
bors
63b000b1b8 Auto merge of #25444 - nikomatsakis:macro-tt-fix, r=pnkfelix
Permit token trees, identifiers, and blocks to be following by sequences.

Fixes #25436.

r? @pnkfelix
2015-05-16 12:29:31 +00:00
Niko Matsakis
7a5d74828b Add test for two sequence repetitions in a row 2015-05-16 08:26:44 -04:00
Xuefeng Wu
574a8cd8cc fix trait capitalise typo in test file 2015-05-16 17:37:11 +08:00
Xuefeng Wu
5cf6b02571 fix typo for copyright year and trait capitalise 2015-05-16 17:29:48 +08:00
P1start
5a1b336a01 Fix the spans of move closures
Closes #24986.
2015-05-16 11:24:06 +12:00
Niko Matsakis
724b6ed751 Permit token trees, identifiers, and blocks to be following by
sequences.

Fixes #25436.
2015-05-15 13:23:27 -04:00
Manish Goregaokar
1109b6dd8d Rollup merge of #25398 - nham:E0066_E0069, r=huonw
Adds explanations for E0053, E0066, E0069, E0251, E0252, E0255, E0256, E0368.

cc #24407
2015-05-14 19:33:10 +05:30
bors
b1bd3a3c51 Auto merge of #25338 - tamird:unignore-stage-tests, r=alexcrichton
We don't have any pending snapshot-requiring changes. Closes #20184.

Works toward #3965.
2015-05-14 09:04:45 +00:00
Nick Hamann
a4444aa780 Add error explanations for E0066 and E0069.
This also updates the error messages for both. For E0066, it removes mention
of "managed heap", which was removed in 8a91d33. For E0069, I just tweaked
the wording to make it a bit more explicit.
2015-05-13 19:55:34 -05:00
Sean Patrick Santos
b4bbf3a88d Fix ICE that occurs when an associated const is ambiguous.
Also change several error messages to refer to "items" rather than
"methods", since associated items that require resolution during type
checking are not always methods.
2015-05-13 18:10:01 -06:00
Tamir Duberstein
f548a05542 Unignore some tests in stage1
We don't have any pending snapshot-requiring changes. Tests which
continue to be ignored are those that are broken by codegen changes.
2015-05-13 19:58:49 -04:00
bors
222cd73b8a Auto merge of #25344 - arielb1:fresh-float, r=nikomatsakis
There is no subtyping relationship between the types (or their non-freshened
variants), so they can not be merged.

Fixes #22645
Fixes #24352
Fixes #23825

Should fix #25235 (no test in issue).
Should fix #19976 (test is outdated).
2015-05-13 15:42:45 +00:00
bors
eb4cb6d16d Auto merge of #25318 - nrc:for-expn, r=sfackler
r? @sfackler
2015-05-13 12:07:11 +00:00
Nick Cameron
5d4cce6cec Rebasing 2015-05-13 14:35:53 +12:00
Nick Cameron
03d4d5f80e Fix a bunch of bugs
* segfault due to not copying drop flag when coercing
* fat pointer casts
* segfault due to not checking drop flag properly
* debuginfo for DST smart pointers
* unreachable code in drop glue
2015-05-13 14:19:51 +12:00
Nick Cameron
843db01bd9 eddyb's changes for DST coercions
+ lots of rebasing
2015-05-13 14:19:51 +12:00
Ariel Ben-Yehuda
36eb09f356 Create a FreshFloatTy separate from FreshIntTy
There is no subtyping relationship between the types (or their non-freshened
variants), so they can not be merged.

Fixes #22645
Fixes #24352
Fixes #23825

Should fix #25235 (no test in issue).
Should fix #19976 (test is outdated).
2015-05-12 21:45:56 +03:00
Manish Goregaokar
866991e273 Rollup merge of #25329 - jooert:tests, r=alexcrichton 2015-05-12 22:57:53 +05:30
Johannes Oertel
23300a39a1 Add regression test for #20413
Closes #20413.
2015-05-12 12:24:20 +02:00
bors
feac9f1c7b Auto merge of #24818 - tbelaire:double-import, r=nrc
This isn't quite right, but it's interesting.
2015-05-12 08:54:40 +00:00
Nick Cameron
edb2ee510b Tests 2015-05-12 14:20:35 +12:00
bors
7334518579 Auto merge of #25085 - carols10cents:remove-old-tilde, r=steveklabnik
There were still some mentions of `~[T]` and `~T`, mostly in comments and debugging statements. I tried to do my best to preserve meaning, but I might have gotten some wrong-- I'm happy to fix anything :)
2015-05-11 04:46:41 +00:00
Manish Goregaokar
87a6278723 Rollup merge of #25252 - inrustwetrust:crate-type-attribute, r=alexcrichton
Fixes the problem in #16974 with unhelpful error messages when accidentally using the wrong syntax for the `crate_type="lib"` attribute. The attribute syntax error now shows up instead of "main function not found".
2015-05-10 11:01:46 +05:30
inrustwetrust
8e8f8d9a5a Upgraded warning for invalid crate_type attribute syntax to an error
If the user intended to set the crate_type to "lib" but accidentally used
incorrect syntax such as `#![crate_type(lib)]`, the compilation would fail with
"main function not found". This made it hard to locate the source of the
problem, since the failure would cause the warning about the incorrect
attribute not to be shown.
2015-05-10 00:07:26 +02:00
Felix S. Klock II
0fa1c1662f Fallout to compile-fail tests.
This change is worrisome to me, both because:

1. I thought the rules in RFC 599 imply that the `Box<Trait>` without `'static`
   in the first case would expand to the second case, but their behaviors
   here differ.  And,

2. The explicit handling of `'static` should mean `dropck` has no application
   here and thus we should have seen no change to the expected error messages.
   Nonetheless, the error messages changed.
2015-05-08 16:08:59 +02:00
Felix S. Klock II
ccf12853d8 Regression tests for Issue 25199 (dropck and Box<Trait + 'a>). 2015-05-08 15:22:25 +02:00
bors
b402c43f08 Auto merge of #25123 - arielb1:self-inhibiting-error, r=nikomatsakis
Fix #25076.

r? @nikomatsakis
2015-05-07 23:40:55 +00:00
bors
05d5fcaa5b Auto merge of #25161 - jooert:moretests, r=alexcrichton
The last one (at least for the moment 😃).

r? @alexcrichton
2015-05-07 13:33:33 +00:00
Ariel Ben-Yehuda
ea3747902c fix test 2015-05-07 16:19:43 +03:00