Skip to content

Commit

Permalink
Fix rust-lang#98260, added the test case
Browse files Browse the repository at this point in the history
  • Loading branch information
Yan Chen committed Jun 28, 2022
1 parent 94e9374 commit f97326d
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 0 deletions.
5 changes: 5 additions & 0 deletions compiler/rustc_typeck/src/variance/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,11 @@ fn crate_variances(tcx: TyCtxt<'_>, (): ()) -> CrateVariancesMap<'_> {
}

fn variances_of(tcx: TyCtxt<'_>, item_def_id: DefId) -> &[ty::Variance] {
// Skip items with no generics - there's nothing to infer in them.
if tcx.generics_of(item_def_id).count() == 0 {
return &[];
}

match tcx.def_kind(item_def_id) {
DefKind::Fn
| DefKind::AssocFn
Expand Down
9 changes: 9 additions & 0 deletions src/test/ui/typeck/issue-98260.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
fn main() {}
trait A {
fn a(aa: B) -> Result<_, B> {
//~^ ERROR: the placeholder `_` is not allowed within types on item signatures for return types [E0121]
Ok(())
}
}

enum B {}
12 changes: 12 additions & 0 deletions src/test/ui/typeck/issue-98260.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
error[E0121]: the placeholder `_` is not allowed within types on item signatures for return types
--> $DIR/issue-98260.rs:3:27
|
LL | fn a(aa: B) -> Result<_, B> {
| -------^----
| | |
| | not allowed in type signatures
| help: replace with the correct return type: `Result<(), B>`

error: aborting due to previous error

For more information about this error, try `rustc --explain E0121`.

0 comments on commit f97326d

Please sign in to comment.