about summary refs log tree commit diff
path: root/src/test/ui/self
AgeCommit message (Collapse)AuthorLines
2021-09-30Rollup merge of #88838 - FabianWolff:issue-88472, r=estebankManish Goregaokar-3/+4
Do not suggest importing inaccessible items Fixes #88472. For this example: ```rust mod a { struct Foo; } mod b { type Bar = Foo; } ``` rustc currently emits: ``` error[E0412]: cannot find type `Foo` in this scope --> test.rs:6:16 | 6 | type Bar = Foo; | ^^^ not found in this scope | help: consider importing this struct | 6 | use a::Foo; | ``` this is incorrect, as applying this suggestion leads to ``` error[E0603]: struct `Foo` is private --> test.rs:6:12 | 6 | use a::Foo; | ^^^ private struct | note: the struct `Foo` is defined here --> test.rs:2:5 | 2 | struct Foo; | ^^^^^^^^^^^ ``` With my changes, I get: ``` error[E0412]: cannot find type `Foo` in this scope --> test.rs:6:16 | 6 | type Bar = Foo; | ^^^ not found in this scope | = note: this struct exists but is inaccessible: a::Foo ``` As for the wildcard mentioned in #88472, I would argue that the warning is actually correct, since the import _is_ unused. I think the real issue is the wrong suggestion, which I have fixed here.
2021-09-26Improve diagnostics for inaccessible itemsFabian Wolff-2/+5
2021-09-26Do not suggest importing inaccessible itemsFabian Wolff-4/+2
2021-09-26Remove box syntax from most places in src/test outside of the issues direst31-25/+15
2021-09-09Ignore automatically derived impls of `Clone` and `Debug` in dead code analysisFabian Wolff-0/+1
2021-08-30`feature(const_generics)` -> `feature(const_param_types)`lcnr-23/+0
2021-08-11Modify structured suggestion outputEsteban Küber-8/+8
* On suggestions that include deletions, use a diff inspired output format * When suggesting addition, use `+` as underline * Color highlight modified span
2021-07-22bless nll testsOli Scherer-2/+2
2021-07-20Get back the more precise suggestion spans of old regionckOli Scherer-2/+2
2021-07-14Warn about useless assignments of variables/fields to themselvesFabian Wolff-0/+1
2021-06-22Updated tests to reflect specified types in E0121Deadbeef-4/+4
2021-03-29Suggest box/pin/arc ing receiver on method callsEsteban Küber-0/+10
2020-11-10Rollup merge of #76765 - guswynn:async_return, r=tmandryJonas Schievink-96/+128
Make it more clear what an about async fn's returns when referring to what it returns see #76547 This is *likely* not the ONLY place that this happens to be unclear, but we can move this fn to rustc_middle or something like that and reuse it if need be, to apply it to more diagnostics One outstanding question I have is, if the fn returns (), should I make the message more clear (what about `fn f()` vs `fn f() -> ()`, can you tell those apart in the hir?) R? `@tmandry` `@rustbot` modify labels +A-diagnostics +T-compiler
2020-10-20review commentsEsteban Küber-3/+3
2020-10-20Tweak "object unsafe" errorsEsteban Küber-18/+25
Fix #77598.
2020-10-17Make it more clear when complaining about async fn's return typesGus Wynn-96/+128
2020-10-16stabilize union with 'ManuallyDrop' fields and 'impl Drop for Union'Ralf Jung-3/+0
2020-09-02pretty: trim paths of unique symbolsDan Aloni-8/+8
If a symbol name can only be imported from one place for a type, and as long as it was not glob-imported anywhere in the current crate, we can trim its printed path and print only the name. This has wide implications on error messages with types, for example, shortening `std::vec::Vec` to just `Vec`, as long as there is no other `Vec` importable anywhere. This adds a new '-Z trim-diagnostic-paths=false' option to control this feature. On the good path, with no diagnosis printed, we should try to avoid issuing this query, so we need to prevent trimmed_def_paths query on several cases. This change also relies on a previous commit that differentiates between `Debug` and `Display` on various rustc types, where the latter is trimmed and presented to the user and the former is not.
2020-07-22Further tweak wording of E0759 and introduce E0767Esteban Küber-4/+4
2020-07-09Reword incorrect `self` token suggestionEsteban Küber-3/+3
2020-06-19Account for multiple impl/dyn Trait in return type when suggesting `'_`Esteban Küber-0/+5
2020-06-15Change E0758 to E0759 to avoid conflict with #72912Esteban Küber-4/+4
2020-06-15small tweaksEsteban Küber-8/+3
2020-06-15Register new eror codeEsteban Küber-0/+2
2020-06-15Use note for requirement source spanEsteban Küber-6/+15
2020-06-15review comments: wordingEsteban Küber-3/+3
2020-06-15Tweak wording and add error codeEsteban Küber-7/+7
2020-06-15Reduce verbosity of suggestion message and mention lifetime in labelEsteban Küber-3/+3
2020-05-30Tweak wording and spans of `'static` `dyn Trait`/`impl Trait` requirementsEsteban Küber-18/+9
2020-05-30review comment: tweak wording and account for span overlapEsteban Küber-2/+2
2020-05-30Account for returned `dyn Trait` evaluating to `'static` lifetimeEsteban Küber-4/+4
Provide a suggestion for `dyn Trait + '_` when possible.
2020-05-07reword "possible candidate" import suggestionAndy Russell-1/+1
2020-03-23Update testsJohn Kåre Alsaker-16/+76
2020-03-12update testsMark Mansi-57/+57
2020-02-28Account for arbitrary self types in E0599Esteban Küber-5/+3
2020-02-28Tweak wordingEsteban Küber-1/+1
2020-02-28Mention the full path of the implementing traitEsteban Küber-1/+1
2020-02-28On single local candidate, use span labelEsteban Küber-3/+3
2020-02-27Revert "Backport only: avoid ICE on bad placeholder type"Esteban Küber-16/+2
This reverts commit 1cb555a1dc809a8d310354678ef9c43f01e41ad4.
2020-02-27Rollup merge of #69324 - estebank:ice-break-backport-bad-placeholder-type, ↵Yuki Okushi-2/+16
r=Centril Backport only: avoid ICE on bad placeholder type #69148 has a proper fix, but it is too big to backport. This change avoids the ICE by actually emitting an appropriate error. The output will be duplicated in some cases, but that's better than the avoidable ICE. r? @Centril
2020-02-22update some testsMark Mansi-57/+57
2020-02-20Backport only: avoid ICE on bad placeholder typeEsteban Küber-2/+16
#69148 has a proper fix, but it is too big to backport. This change avoids the ICE by actually emitting an appropriate error. The output will be duplicated in some cases, but that's better than the avoidable ICE.
2020-02-14Update testsMatthew Jasper-202/+5
2020-02-09--bless --compare-mode=nllMatthias Prechtl-1/+1
2020-02-02Use more appropriate spans on object unsafe traits and provide structured ↵Esteban Küber-7/+12
suggestions when possible
2020-02-02Wording changes to object unsafe trait errorsEsteban Küber-3/+13
Stemming from the thread at https://twitter.com/indygreg/status/1223279056398929920
2020-02-02compiletest: error if `compile-fail` header in ui test.Tyler Lanphear-15/+11
2020-01-08Unify output of "variant not found" errorsEsteban Küber-4/+4
2020-01-04Rollup merge of #66913 - VirrageS:help-self, r=varkor,CentrilMazdak Farrokhzad-0/+65
Suggest calling method when first argument is `self` Closes: #66782 I've explored different approaches for this MR but I think the most straightforward is the best one. I've tried to find out if the methods for given type exist (to maybe have a better suggestion), but we don't collect them anywhere and collecting them is quite problematic. Moreover, collecting all the methods would require rewriting big part of the code and also could potentially include performance degradation, which I don't think is necessary for this simple case.
2020-01-03Rollup merge of #67595 - ohadravid:impl-trait-does-not-live-long-enough, ↵Yuki Okushi-3/+3
r=estebank Suggest adding a lifetime constraint for opaque type Fixes #67577, where code like this: ``` struct List { data: Vec<String>, } impl List { fn started_with<'a>(&'a self, prefix: &'a str) -> impl Iterator<Item=&'a str> { self.data.iter().filter(|s| s.starts_with(prefix)).map(|s| s.as_ref()) } } ``` will show this error: ``` Compiling playground v0.0.1 (/playground) error[E0597]: `prefix` does not live long enough --> src/lib.rs:6:47 | 5 | fn started_with<'a>(&'a self, prefix: &'a str) -> impl Iterator<Item=&'a str> { | -- lifetime `'a` defined here --------------------------- opaque type requires that `prefix` is borrowed for `'a` ... ``` but without suggesting the lovely `help: you can add a constraint..`. r? @estebank