Commit graph

95 commits

Author SHA1 Message Date
David Wood
6e24868384
Normalize source line and column numbers.
This commit adds a normalization for line and column numbers in stderr
files where the line/col is from the source directory rather than
the test itself - thereby removing the need to update tests as
compiler source changes.
2018-08-21 12:59:42 +02:00
Matthew Jasper
a19db49c86 Update former compile-fail tests 2018-08-14 21:26:33 +01:00
David Wood
3fc7ab2373
Merged migrated compile-fail tests and ui tests. Fixes #46841. 2018-08-14 11:12:09 +02:00
David Wood
2488cb6b10
Explicitly label any named lifetimes mentioned in error messages. 2018-08-02 12:00:15 +02:00
bors
b6cbc1e147 Auto merge of #52648 - davidtwco:issue-52533, r=nikomatsakis
[nll] improve the "fully elaborated type" case in region errors

Fixes #52533.

r? @nikomatsakis
2018-07-27 13:01:48 +00:00
David Wood
2e4224a998
Region inference error messages no longer start with 'free region' 2018-07-27 13:14:56 +02:00
David Wood
b377e7bbfb
Change label from closure to function where appropriate. 2018-07-27 12:48:47 +02:00
bors
7c2aeb9d97 Auto merge of #52650 - oli-obk:associated_existential_types, r=nikomatsakis
Implement associated existential types

r? @nikomatsakis

no idea if these work with generic traits. I'm going home for the day 🤣
2018-07-27 07:16:12 +00:00
bors
bfbf8375d7 Auto merge of #52488 - nikomatsakis:nll-issue-48071-universe-and-sub, r=pnkfelix
introduce universes to NLL type check

This branch aims to fix #48071 and also advance chalk integration a bit at the same time. It re-implements the subtyping/type-equating check so that NLL doesn't "piggy back" on the subtyping code of the old type checker.

This new code uses the "universe-based" approach to handling higher-ranked lifetimes, which sidesteps some of the limitations of the current "leak-based" scheme. This avoids the ICE in #48071.

At the same time, I aim for this to potentially be a kind of optimization. This NLL code is (currently) not cached, but it also generates constraints without doing as much instantiation, substitution, and folding. Right now, though, it still piggy backs on the `relate_tys` trait, which is a bit unfortunate -- it means we are doing more hashing and things than we have to. I want to measure the see the perf. Refactoring that trait is something I'd prefer to leave for follow-up work.

r? @pnkfelix -- but I want to measure perf etc first
2018-07-26 15:23:50 +00:00
Niko Matsakis
0d918a8575 improve heuristics for what makes an interesting constraint 2018-07-25 16:36:03 +03:00
Oliver Schneider
93974cb09e Fix associated existentials for generic traits 2018-07-25 10:47:59 +02:00
Oliver Schneider
2e33a557de Allow declaring existential types inside blocks 2018-07-24 10:07:45 +02:00
Oliver Schneider
9130efdad3 Implement associated existential types 2018-07-23 17:38:45 +02:00
Oliver Schneider
35351591af Move some tests around 2018-07-18 10:53:09 +02:00
Oliver Schneider
4e8cc76a91 Add test for using existential types in associated types 2018-07-18 10:53:08 +02:00
Oliver Schneider
3e215a3c87 Typeck existential types properly 2018-07-18 10:53:08 +02:00
Oliver Schneider
61414fd6c1 Use the correct visibility 2018-07-13 20:45:23 +02:00
Niko Matsakis
a6adb1ebff find and highlight the & or '_ in region_name 2018-07-09 00:20:36 -04:00
Niko Matsakis
727f01700b write code to extract region names and emit new style message 2018-07-04 05:09:33 -04:00
bors
8772747c5f Auto merge of #51862 - estebank:lifetime-spans, r=nikomatsakis
Point to lifetime spans on lifetime errors
2018-06-30 16:52:12 +00:00
bors
acf50b79be Auto merge of #51806 - oli-obk:lowering_cleanups1, r=cramertj
Lowering cleanups [1/N]
2018-06-30 07:10:18 +00:00
Esteban Küber
8449c5ab8a Fix rebase 2018-06-28 12:52:58 -07:00
Esteban Küber
5436a5c55a Point to lifetime in fn definition on lifetime error note 2018-06-28 11:12:42 -07:00
bors
ba196bdcb1 Auto merge of #51444 - estebank:impl-static, r=nikomatsakis
Suggestion for 'static impl Trait return

When encountering a named or anonymous sup requirement (for example,
`&'a self`) and a `'static` impl Trait return type, suggest adding the
`'_` lifetime constraing to the return type.

Fix #43719, #51282.

```
error: cannot infer an appropriate lifetime
  --> $DIR/static-return-lifetime-infered.rs:17:16
   |
LL |     fn iter_values_anon(&self) -> impl Iterator<Item=u32> {
   |                                   ----------------------- this return type evaluates to the `'static` lifetime...
LL |         self.x.iter().map(|a| a.0)
   |         ------ ^^^^
   |         |
   |         ...but this borrow...
   |
note: ...can't outlive the anonymous lifetime #1 defined on the method body at 16:5
  --> $DIR/static-return-lifetime-infered.rs:16:5
   |
LL | /     fn iter_values_anon(&self) -> impl Iterator<Item=u32> {
LL | |         self.x.iter().map(|a| a.0)
LL | |     }
   | |_____^
help: you can add a constraint to the return type to make it last less than `'static` and match the anonymous lifetime #1 defined on the method body at 16:5
   |
LL |     fn iter_values_anon(&self) -> impl Iterator<Item=u32> + '_ {
   |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
```
2018-06-28 03:57:28 +00:00
Oliver Schneider
99575b5cac Update ui tests 2018-06-27 12:03:59 +02:00
Oliver Schneider
1b202426dc fixup 2018-06-27 11:17:55 +02:00
Oliver Schneider
28a76a9000 Don't inspect the generated existential type items 2018-06-26 16:36:32 +02:00
Esteban Küber
612657d9f0 Use lifetime name if available 2018-06-20 15:38:07 -07:00
Esteban Küber
776544f011 Add message to rustc_on_unimplemented attributes in core 2018-06-19 15:19:13 -07:00
bors
862703e05e Auto merge of #51414 - oli-obk:impl_trait_type_def, r=pnkfelix
Add existential type definitions

Note: this does not allow creating named existential types, it just desugars `impl Trait` to a less (but still very) hacky version of actual `existential type` items.

r? @nikomatsakis
2018-06-18 14:34:52 +00:00
Guillaume Gomez
f2349d5ec6 Fix error codes 2018-06-10 14:04:48 +02:00
Esteban Küber
aaf78a5265 Add nll test output 2018-06-08 21:08:29 -07:00
Esteban Küber
6be16baa4a Remove primary label for more readable output 2018-06-08 16:27:07 -07:00
Esteban Küber
82d3a49564 Suggestion for 'static impl Trait return
When encountering a named or anonymous sup requirement (for example,
`&'a self`) and a `'static` impl Trait return type, suggest adding the
`'_` lifetime constraing to the return type.
2018-06-08 15:25:20 -07:00
Oliver Schneider
9b1bd94e37 Add existential type definitons 2018-06-07 17:33:53 +02:00
kennytm
103abdb75c
Rollup merge of #50987 - estebank:underline-multiple-suggestions, r=petrochencov
Underline multiple suggested replacements in the same line

<img width="685" alt="screen shot 2018-05-22 at 21 06 48" src="https://user-images.githubusercontent.com/1606434/40403051-174f3180-5e04-11e8-86b6-261630c5ff80.png">

Follow up to #50943.

Fix #50977.
2018-05-26 19:32:18 +08:00
Niko Matsakis
558cbfb19b prohibit turbofish in impl Trait methods 2018-05-24 18:43:48 -04:00
Esteban Küber
f36c643d4f Fix impl Trait suggestion 2018-05-24 10:01:13 -07:00
Esteban Küber
50eefc0d77 Account for negative offsets in suggestions
When suggesting code that has a shorter span than the current code,
account for this by keeping the offset as a signed value.
2018-05-24 04:16:54 -07:00
Oliver Schneider
849c565e2f Prevent local paths into libstd from leaking into ui tests 2018-05-22 12:00:27 +02:00
Oliver Schneider
af75ebdc3a Improve the diagnostic around impl Trait <-> generic param mismatch 2018-05-21 18:06:28 +02:00
Oliver Schneider
00842d10cd Move a test to ui tests so we can observe the output changes better 2018-05-21 09:59:37 +02:00
Oliver Schneider
0874ba0fe5 Typo caused the wrong "cannot find" error 2018-05-21 09:56:52 +02:00
Aravind Gollakota
bc16b8e92a Port existing callers of evaluate_obligation to the new canonical trait query
Except the one in coherence, which needs support for intercrate mode.
2018-04-26 20:28:30 -05:00
Simon Sapin
70fdd1b5c0 Make the unstable StrExt and SliceExt traits private to libcore in not(stage0)
`Float` still needs to be public for libcore unit tests.
2018-04-21 09:47:38 +02:00
John Kåre Alsaker
9cbe3b749d Update tests 2018-04-16 23:30:36 +02:00
bors
4bf76d6745 Auto merge of #48709 - tinaun:issue48703, r=nikomatsakis
remove erroneous error message when checking impl trait params

fixes #48703
2018-04-05 05:04:27 +00:00
tinaun
97e0dc330f added test 2018-03-28 17:51:57 -04:00
Taylor Cramer
0f5b52e4a8 Stabilize conservative_impl_trait 2018-03-26 10:43:03 +02:00
Taylor Cramer
c393db67ba Stabilize universal_impl_trait 2018-03-26 07:39:38 +02:00