Skip to content

Commit

Permalink
Fix issue with specifying generic arguments for primitive types
Browse files Browse the repository at this point in the history
  • Loading branch information
varkor committed Oct 18, 2020
1 parent 28928c7 commit c0d29fe
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 6 deletions.
16 changes: 10 additions & 6 deletions compiler/rustc_typeck/src/collect/type_of.rs
Expand Up @@ -112,12 +112,16 @@ pub(super) fn opt_const_param_of(tcx: TyCtxt<'_>, def_id: LocalDefId) -> Option<
tcx.sess.delay_span_bug(tcx.def_span(def_id), "anon const with Res::Err");
return None;
}
_ => span_bug!(
DUMMY_SP,
"unexpected anon const res {:?} in path: {:?}",
res,
path,
),
_ => {
// If the user tries to specify generics on a type that does not take them,
// e.g. `usize<T>`, we may hit this branch, in which case we treat it as if
// no arguments have been passed. An error should already have been emitted.
tcx.sess.delay_span_bug(
tcx.def_span(def_id),
&format!("unexpected anon const res {:?} in path: {:?}", res, path),
);
return None;
}
};

generics
Expand Down
5 changes: 5 additions & 0 deletions src/test/ui/usize-generic-argument-parent.rs
@@ -0,0 +1,5 @@
fn foo() {
let x: usize<foo>; //~ ERROR const arguments are not allowed for this type
}

fn main() {}
9 changes: 9 additions & 0 deletions src/test/ui/usize-generic-argument-parent.stderr
@@ -0,0 +1,9 @@
error[E0109]: const arguments are not allowed for this type
--> $DIR/usize-generic-argument-parent.rs:2:18
|
LL | let x: usize<foo>;
| ^^^ const argument not allowed

error: aborting due to previous error

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

0 comments on commit c0d29fe

Please sign in to comment.