Esteban Küber
697fdc568e
Suggest defining type parameter when appropriate
...
```
error[E0412]: cannot find type `T` in this scope
--> file.rs:3:12
|
3 | impl Trait<T> for Struct {}
| - ^ not found in this scope
| |
| help: you might be missing a type parameter: `<T>`
```
Fix #64298 .
2020-01-26 10:57:18 -08:00
Mazdak Farrokhzad
de6046fa0f
remove rustc_error_codes deps except in rustc_driver
2020-01-18 21:53:53 +01:00
Mazdak Farrokhzad
8bd3d240e3
nix syntax::errors & prefer rustc_errors over errors
2020-01-10 07:41:30 +01:00
Mazdak Farrokhzad
2c3e5d3de0
- remove syntax::{span_warn!, span_err!, span_fatal!. struct_err!}
...
- remove syntax::{help!, span_help!, span_note!}
- remove unused syntax::{struct_span_fatal, struct_span_err_or_warn!, span_err_or_warn!}
- lintify check_for_bindings_named_same_as_variants + conflicting_repr_hints
- inline syntax::{struct_span_warn!, diagnostic_used!}
- stringify_error_code! -> error_code! & use it more.
- find_plugin_registrar: de-fatalize an error
- de-fatalize metadata errors
- move type_error_struct! to rustc_typeck
- struct_span_err! -> rustc_errors
2020-01-08 04:25:33 +01:00
Mazdak Farrokhzad
ebfd8673a7
Remove rustc_hir reexports in rustc::hir.
2020-01-05 12:49:22 +01:00
Mazdak Farrokhzad
7901c7f707
canonicalize FxHash{Map,Set} imports
2020-01-04 18:57:22 +01:00
Mazdak Farrokhzad
814e3af8bd
Rollup merge of #67786 - Centril:canon-span, r=petrochenkov
...
Nix reexports from `rustc_span` in `syntax`
Remove reexports `syntax::{source_map, symbol, edition}` and use `rustc_span` paths directly.
r? @petrochenkov
2020-01-04 02:19:49 +01:00
Mazdak Farrokhzad
a436293994
Rollup merge of #66913 - VirrageS:help-self, r=varkor,Centril
...
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-04 02:19:44 +01:00
Mazdak Farrokhzad
4ff12ce4c1
Normalize syntax::symbol
imports.
2020-01-02 13:57:04 +01:00
Vadim Petrochenkov
70f1d57048
Rename syntax_pos
to rustc_span
in source code
2020-01-01 09:15:18 +03:00
Janusz Marcinkiewicz
7b91ef8837
Simplify match expr
2019-12-23 15:55:35 +01:00
Janusz Marcinkiewicz
2168c0b979
Extract checking for self arg to separate method
2019-12-23 12:06:17 +01:00
Janusz Marcinkiewicz
7353afdfd9
Extend suggestion span to whole method call
2019-12-23 11:57:09 +01:00
Janusz Marcinkiewicz
091853946b
Add arguments to suggestion method call
2019-12-23 11:57:09 +01:00
Janusz Marcinkiewicz
8e5b2c80d3
Add more detailed suggestion
2019-12-23 11:57:09 +01:00
Janusz Marcinkiewicz
8d189ed2f1
Suggest calling method when first argument is self
2019-12-23 11:57:08 +01:00
Mark Rousskov
a06baa56b9
Format the world
2019-12-22 17:42:47 -05:00
Guillaume Gomez
798e389e57
Update to use new librustc_error_codes library
2019-11-14 13:05:42 +01:00
bors
8d78bf6b27
Auto merge of #65421 - estebank:variants, r=petrochenkov
...
Point at local similarly named element and tweak references to variants
Partially address #65386 .
2019-10-28 13:41:13 +00:00
Mazdak Farrokhzad
83260d5c43
Rollup merge of #65792 - Centril:split-syntax-2, r=petrochenkov
...
rustc, rustc_passes: reduce deps on rustc_expand
Part of #65324 .
r? @petrochenkov
2019-10-28 04:53:07 +01:00
Esteban Küber
b26ddb8af3
Point at local similarly named element and tweak references to variants
...
Point at the span for the definition of ADTs internal to the current
crate.
Look at the leading char of the ident to determine whether we're
expecting a likely fn or any of a fn, a tuple struct or a tuple variant.
Turn fn `add_typo_suggestion` into a `Resolver` method.
2019-10-27 11:50:43 -07:00
Mazdak Farrokhzad
fb12c70852
rustc, rustc_passes: don't depend on syntax_expand.
...
This is done by moving some data definitions to syntax::expand.
2019-10-27 17:05:57 +01:00
Esteban Küber
93bb780e38
review comments and tweaks
2019-10-26 15:26:08 -07:00
Esteban Küber
6206a5a1b4
Use heuristics to suggest assignment
...
When detecting a possible `=` -> `:` typo in a `let` binding, suggest
assigning instead of setting the type.
2019-10-26 15:26:08 -07:00
Esteban Küber
f65a492afc
Point at enclosing function without self
receiver
2019-10-17 20:26:21 -07:00
Esteban Küber
11011013f2
Refer to "associated functions" instead of "static methods"
2019-10-17 19:03:36 -07:00
Mazdak Farrokhzad
d420d719c4
move syntax::ext to new crate syntax_expand
2019-10-16 10:59:53 +02:00
bors
898f36c83c
Auto merge of #65153 - da-x:issue-58017, r=petrochenkov
...
Improve message when attempting to instantiate tuple structs with private fields
Fixes #58017 , fixes #39703 .
```
error[E0603]: tuple struct `Error` is private
--> main.rs:22:16
|
2 | pub struct Error(usize, pub usize, usize);
| ----- ----- field is private
| |
| field is private
...
22 | let x = a::Error(3, 1, 2);
| ^^^^^
|
= note: a tuple struct constructor is private if any of its fields is private
```
2019-10-10 19:40:48 +00:00
Vadim Petrochenkov
5d8af38329
resolve: Keep field spans for diagnostics
2019-10-09 18:07:22 +03:00
Aaron Hill
add0a42034
Remove for_each_child_stable
...
Now that `Resolutions` has a deterministic iteration order, it's no
longer necessary to sort its entries before iterating over them
2019-10-05 16:34:38 -04:00
Mazdak Farrokhzad
0a2ddcc346
Rollup merge of #64691 - estebank:unexpected-variant, r=Centril
...
Point at definition when misusing ADT
When given `struct Foo(usize)` and using it as `Foo {}` or `Foo`, point at `Foo`'s definition in the error.
2019-09-29 20:34:12 +02:00
varkor
c3d8791373
Rename Ty.node
to Ty.kind
2019-09-26 18:21:10 +01:00
varkor
95f6d72a60
Rename Expr.node
to Expr.kind
...
For both `ast::Expr` and `hir::Expr`.
2019-09-26 18:21:09 +01:00
Esteban Küber
2ae9016553
Point at definition when misusing ADT
...
When given `struct Foo(usize)` and using it as `Foo {}` or `Foo`, point at
`Foo`'s definition in the error.
2019-09-22 11:27:55 -07:00
Mazdak Farrokhzad
7eac55518a
Rollup merge of #64660 - guanqun:unify-errors-for-tuple-struct, r=estebank
...
unify errors for tuple/struct variants
fix #63983
2019-09-21 21:24:20 +02:00
Guanqun Lu
e001c5f9d8
unify errors for tuple/struct variants
...
fix #63983
2019-09-21 23:38:35 +08:00
guanqun
c3140bae63
remove the extra comma after the match arm
...
This would follow the same coding style as all the other match arms in this file.
2019-09-21 00:22:43 +08:00
Mark Rousskov
b437240cee
Replace diagnostic plugins with macro_rules
2019-09-05 12:35:15 -04:00
Vadim Petrochenkov
ab4cc2db56
resolve: Move some code around
2019-08-16 21:10:12 +03:00
Vadim Petrochenkov
ea81d8cedb
resolve: Populate external modules in more automatic and lazy way
...
The modules are now populated implicitly on the first access
2019-08-16 21:10:12 +03:00
Vadim Petrochenkov
e18ad70d2b
diagnostics: Describe crate root modules in DefKind::Mod
as "crate"
2019-08-10 23:17:20 +03:00
Vadim Petrochenkov
f360d795f1
resolve: Move some more code around
...
Move methods logically belonging to build-reduced-graph into `impl BuildReducedGraphVisitor` and `build_reduced_graph.rs`
Move types mostly specific to late resolution closer to the late resolution visitor
2019-08-10 13:16:06 +03:00
Vadim Petrochenkov
6a347f3701
resolve: Remove Deref<Target=Resolver>
implementations
...
It's now immediately clear what fields belong to the global resolver state and what are specific to passes/visitors.
2019-08-10 13:16:06 +03:00
Vadim Petrochenkov
df03e420e0
resolve: Track whole parent scope in the visitors
...
Instead of tracking current module and other components separately.
(`ParentScope` includes the module as a component.)
2019-08-10 13:16:06 +03:00
Vadim Petrochenkov
ff85d1c2d2
resolve: Move late resolution visitor into a separate file
2019-08-10 13:16:06 +03:00