Commit graph

352 commits

Author SHA1 Message Date
Vadim Petrochenkov
2a9b75281b Move special treatment of derive(Copy, PartialEq, Eq) from expansion infrastructure to elsewhere 2019-08-03 23:57:35 +03:00
Mazdak Farrokhzad
e933f54793
Rollup merge of #62772 - estebank:trait-bound, r=matthewjasper
Suggest trait bound on type parameter when it is unconstrained

Given

```
trait Foo { fn method(&self) {} }

fn call_method<T>(x: &T) {
    x.method()
}
```

suggest constraining `T` with `Foo`.

Fix #21673, fix #41030.
2019-07-24 16:13:14 +02:00
bors
fe499a7b34 Auto merge of #62684 - petrochenkov:scopevisit, r=davidtwco
resolve: Improve candidate search for unresolved macro suggestions

Use same scope visiting machinery for both collecting suggestion candidates and actually resolving the names.

The PR is better read in per-commit fashion with whitespace changes ignored (the first commit in particular moves some code around).

This should be the last pre-requisite for https://github.com/rust-lang/rust/pull/62086.
r? @davidtwco
2019-07-19 00:24:39 +00:00
Esteban Küber
f22bc2d3ff Suggest trait bound on type parameter when it is unconstrained
Given

```
mented on Jan 26, 2015 •
 trait Foo { fn method(&self) {} }

fn call_method<T>(x: &T) {
    x.method()
}
```

suggest constraining `T` with `Foo`.
2019-07-18 11:50:50 -07:00
Mark Rousskov
0ae9048494
Rollup merge of #62764 - fakenine:normalize_use_of_backticks_compiler_messages_p7, r=alexreg
normalize use of backticks in compiler messages for librustc/lint

https://github.com/rust-lang/rust/issues/60532
2019-07-18 11:29:53 -04:00
Vadim Petrochenkov
79f0d88de8 resolve: Use feature(custom_attribute) fallback only if the feature is enabled
Normally `#![feature(...)]` shouldn't change behavior, but custom attributes in particular are in the process of retirement, and we should not produce a message telling to enable them.
It also helps with unifying diagnostics for unresolved macros.
2019-07-18 13:42:45 +03:00
Samy Kacimi
e5e1397adb
normalize use of backticks in compiler messages for librustc/lint
https://github.com/rust-lang/rust/issues/60532
2019-07-17 22:49:48 +02:00
Limira
b7cbd4ec47 Update the help message on error for self type 2019-07-16 11:30:48 +07:00
Lzu Tao
8347917dd9 Remove feature gate dropck_parametricity completely
Therefore we also remove `#[unsafe_destructor_blind_to_params]`
attribute completly.
2019-07-11 18:44:56 +00:00
Lzu Tao
ab3adf380d Replace unsafe_destructor_blind_to_params with may_dangle 2019-07-11 18:14:56 +00:00
Samy Kacimi
41e71b0c93
normalize use of backticks in compiler messages for libsyntax/feature_gate
https://github.com/rust-lang/rust/issues/60532
2019-07-09 14:13:28 +02:00
Yuki Okushi
c004451a20 Migrate compile-pass annotations to build-pass 2019-07-03 06:30:28 +09:00
Matthew Jasper
8ffa408059 Update tests for changes to cannot move errors 2019-06-03 14:55:29 +01:00
bors
c57ed9d947 Auto merge of #61331 - estebank:fn-arg-parse-recovery, r=varkor
Recover gracefully from argument with missing type or param name
2019-06-03 05:40:53 +00:00
Esteban Küber
9616b333b2 review comment: tweak wording 2019-06-01 14:47:15 -07:00
Esteban Küber
ebbe725dd0 Tweak wording 2019-05-31 20:48:09 -07:00
Esteban Küber
65c2a7b18b Alternative wording for inference failure 2019-05-31 18:33:59 -07:00
Esteban Küber
8bb094dac5 Add more detail to type inference error
When encountering code where type inference fails, add more actionable
information:

```
fn main() {
    let foo = Vec::new();
}
```

```
error[E0282]: type annotations needed for `std::vec::Vec<_>`
  --> $DIR/vector-no-ann.rs:2:16
   |
LL |     let foo = Vec::new();
   |         ---   ^^^^^^^^ cannot infer type for `T`
   |         |
   |         consider giving `foo` the type `std::vec::Vec<_>` with the type parameter `T` specified
```

We still need to modify type printing to optionally accept a
`TypeVariableTable` in order to properly print `std::vec::Vec<T>`.

CC #25633.
2019-05-31 18:33:59 -07:00
Esteban Küber
b3ac88ad92 Recover gracefully from argument with missing type or param name 2019-05-30 17:59:05 -07:00
memoryruins
eb4580a570 Update ui test suite to use dyn 2019-05-29 00:57:31 -04:00
Esteban Küber
8895fb945d Account for &String + String 2019-05-17 10:45:54 -07:00
Esteban Küber
ee0bf5e6aa review comments 2019-05-16 21:09:39 -07:00
Esteban Küber
2cb91816f2 Fix binop span 2019-05-16 19:56:11 -07:00
Esteban Küber
234adf84bd Handle more string addition cases with appropriate suggestions 2019-05-16 19:29:02 -07:00
varkor
497dcfa221 Update ui tests 2019-04-23 11:42:14 +01:00
varkor
62838975d0 Remove unnecessary ignore-tidy-linelength 2019-04-23 11:42:14 +01:00
varkor
7f0f0e31ec Remove double trailing newlines 2019-04-22 16:57:01 +01:00
Matthew Jasper
8eef102270 update tests for migrate mode by default 2019-04-22 08:40:08 +01:00
Andy Russell
b6f148c8bd
hide --explain hint if error has no extended info 2019-04-18 13:29:28 -04:00
Esteban Küber
146d040f0b Reword tracking issue note 2019-04-11 11:42:06 -07:00
Esteban Küber
3ab97062cf Tweak unstable diagnostic output 2019-04-10 18:10:30 -07:00
Masaki Hara
e55d82c8a3 Fix expectations on some ui tests involving FnOnce. 2019-04-05 02:26:59 +08:00
Mazdak Farrokhzad
c105f34fcb
Rollup merge of #59473 - estebank:borrow-sugg-inside-macro, r=davidtwco
Do not emit incorrect borrow suggestion involving macros and fix overlapping multiline spans

Fix #58298.
2019-03-29 12:32:28 +01:00
Mazdak Farrokhzad
fda206633d
Rollup merge of #59467 - hgallagher1993:local_branch, r=estebank
Better diagnostic for binary operation on BoxedValues

Fixes #59458
2019-03-29 12:32:26 +01:00
hgallagher1993
4644c3a6aa Add check for when left and right overlap and change span for explanation to point at operator 2019-03-28 13:54:29 -04:00
Esteban Küber
0acb7867c2 Do not suggest borrowing when the span comes from a macro 2019-03-27 19:35:30 -07:00
hgallagher1993
4d648ce1b9 Better diagnostic for binary operation on BoxedValues 2019-03-27 13:13:09 -04:00
Esteban Küber
4bad56e54c When moving out of a for loop head, suggest borrowing it in nll mode 2019-03-25 19:29:02 -07:00
Vadim Petrochenkov
c1cfacfb13 Update NLL tests 2019-03-11 23:18:35 +03:00
Vadim Petrochenkov
fa72a81bea Update tests 2019-03-11 23:10:26 +03:00
Santiago Pastorino
801c3f060f
Fix erroneous loop diagnostic in nll
This commit fixes the logic of detecting when a use happen in a later
iteration of where a borrow was defined

Fixes #53773
2019-02-20 12:15:08 -03:00
Esteban Küber
87dd2e1df9 Use hidden suggestions for unused imports lint 2019-02-11 11:16:22 -08:00
Pietro Albini
5ef71508fe
unused_imports: update tests 2019-02-08 08:44:56 +01:00
David Wood
5f021e0023
Unused variable suggestions on all patterns.
This commit extends existing suggestions to prefix unused variable
bindings in match arms with an underscore so that it applies to all
patterns in a match arm.
2019-01-28 10:46:31 +01:00
Esteban Küber
d37a6d83e1 Suggest usage of angle brackets 2019-01-19 19:39:58 -08:00
Mazdak Farrokhzad
0b7d8f99ed
Rollup merge of #57477 - euclio:clarify-lev-suggestion, r=zackmdavis
clarify resolve typo suggestion

Include the kind of the binding that we're suggesting, and use a
structured suggestion.

Fixes #53445.
2019-01-14 11:31:53 +01:00
Andy Russell
404ad50d14
clarify resolve typo suggestion
Include the kind of the binding that we're suggesting, and use a
structured suggestion.
2019-01-09 14:11:00 -05:00
Andy Russell
7c0d145ec1
improve non_snake_case diagnostics
Use a structured suggestion and tighten the span to just the identifier.
2019-01-08 13:24:38 -05:00
Vadim Petrochenkov
10a00e120d Make sure feature gate errors are recoverable (take 2) 2019-01-06 14:58:17 +03:00
Matthew Jasper
afb7c06834 Remove unused nll debug flags 2018-12-30 20:44:44 +00:00