diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2022-10-14 00:45:17 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-10-14 00:45:17 +0200 |
| commit | 9692d98e4f3ed8e6076ad1e741d9ed106f40bc3e (patch) | |
| tree | 1232e81d51ee84b2e590c4eaa996e19412ee1282 | |
| parent | c7f048ea00c35dc6d30ba8e63ace96bbc65cc153 (diff) | |
| parent | 577d2cfbcc9b7c8981e7faaf62981d1b5b35b8a8 (diff) | |
| download | rust-9692d98e4f3ed8e6076ad1e741d9ed106f40bc3e.tar.gz rust-9692d98e4f3ed8e6076ad1e741d9ed106f40bc3e.zip | |
Rollup merge of #103006 - WaffleLapkin:rustdoc_dont, r=compiler-errors
rustdoc: don't ICE on `TyKind::Typeof` Fixes #102986 I'm not sure why rustdoc started seeing `TyKind::Typeof` all of a sudden (the code being editted was last touched 3 months ago), probably something to do with error recovery? idk.
| -rw-r--r-- | src/librustdoc/clean/mod.rs | 3 | ||||
| -rw-r--r-- | src/test/rustdoc-ui/issue-102986.rs | 4 | ||||
| -rw-r--r-- | src/test/rustdoc-ui/issue-102986.stderr | 14 |
3 files changed, 19 insertions, 2 deletions
diff --git a/src/librustdoc/clean/mod.rs b/src/librustdoc/clean/mod.rs index 8d556a962d9..7f82dfbd3d6 100644 --- a/src/librustdoc/clean/mod.rs +++ b/src/librustdoc/clean/mod.rs @@ -1543,8 +1543,7 @@ pub(crate) fn clean_ty<'tcx>(ty: &hir::Ty<'tcx>, cx: &mut DocContext<'tcx>) -> T } TyKind::BareFn(barefn) => BareFunction(Box::new(clean_bare_fn_ty(barefn, cx))), // Rustdoc handles `TyKind::Err`s by turning them into `Type::Infer`s. - TyKind::Infer | TyKind::Err => Infer, - TyKind::Typeof(..) => panic!("unimplemented type {:?}", ty.kind), + TyKind::Infer | TyKind::Err | TyKind::Typeof(..) => Infer, } } diff --git a/src/test/rustdoc-ui/issue-102986.rs b/src/test/rustdoc-ui/issue-102986.rs new file mode 100644 index 00000000000..001784ac285 --- /dev/null +++ b/src/test/rustdoc-ui/issue-102986.rs @@ -0,0 +1,4 @@ +struct Struct { + y: (typeof("hey"),), + //~^ `typeof` is a reserved keyword but unimplemented +} diff --git a/src/test/rustdoc-ui/issue-102986.stderr b/src/test/rustdoc-ui/issue-102986.stderr new file mode 100644 index 00000000000..3a573726c97 --- /dev/null +++ b/src/test/rustdoc-ui/issue-102986.stderr @@ -0,0 +1,14 @@ +error[E0516]: `typeof` is a reserved keyword but unimplemented + --> $DIR/issue-102986.rs:2:9 + | +LL | y: (typeof("hey"),), + | ^^^^^^^^^^^^^ reserved keyword + | +help: consider replacing `typeof(...)` with an actual type + | +LL | y: (&'static str,), + | ~~~~~~~~~~~~ + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0516`. |
