Commit Graph

42 Commits

Author SHA1 Message Date
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