summaryrefslogtreecommitdiffstats
path: root/tests/rustdoc-ui
diff options
context:
space:
mode:
Diffstat (limited to 'tests/rustdoc-ui')
-rw-r--r--tests/rustdoc-ui/check-cfg/check-cfg-test.stderr (renamed from tests/rustdoc-ui/check-cfg-test.stderr)0
-rw-r--r--tests/rustdoc-ui/check-cfg/check-cfg-unstable.rs (renamed from tests/rustdoc-ui/check-cfg-unstable.rs)0
-rw-r--r--tests/rustdoc-ui/check-cfg/check-cfg-unstable.stderr (renamed from tests/rustdoc-ui/check-cfg-unstable.stderr)0
-rw-r--r--tests/rustdoc-ui/check-cfg/check-cfg.rs (renamed from tests/rustdoc-ui/check-cfg.rs)0
-rw-r--r--tests/rustdoc-ui/check-cfg/check-cfg.stderr (renamed from tests/rustdoc-ui/check-cfg.stderr)2
-rw-r--r--tests/rustdoc-ui/doctest/auxiliary/extern_macros.rs (renamed from tests/rustdoc-ui/auxiliary/extern_macros.rs)0
-rw-r--r--tests/rustdoc-ui/doctest/block-doc-comment.rs (renamed from tests/rustdoc-ui/block-doc-comment.rs)0
-rw-r--r--tests/rustdoc-ui/doctest/block-doc-comment.stdout (renamed from tests/rustdoc-ui/block-doc-comment.stdout)0
-rw-r--r--tests/rustdoc-ui/doctest/cfg-test.rs (renamed from tests/rustdoc-ui/cfg-test.rs)2
-rw-r--r--tests/rustdoc-ui/doctest/cfg-test.stdout (renamed from tests/rustdoc-ui/cfg-test.stdout)0
-rw-r--r--tests/rustdoc-ui/doctest/check-attr-test.rs (renamed from tests/rustdoc-ui/check-attr-test.rs)0
-rw-r--r--tests/rustdoc-ui/doctest/check-attr-test.stderr (renamed from tests/rustdoc-ui/check-attr-test.stderr)0
-rw-r--r--tests/rustdoc-ui/doctest/check-cfg-test.rs (renamed from tests/rustdoc-ui/check-cfg-test.rs)4
-rw-r--r--tests/rustdoc-ui/doctest/check-cfg-test.stderr11
-rw-r--r--tests/rustdoc-ui/doctest/check-cfg-test.stdout (renamed from tests/rustdoc-ui/check-cfg-test.stdout)0
-rw-r--r--tests/rustdoc-ui/doctest/display-output.rs (renamed from tests/rustdoc-ui/display-output.rs)2
-rw-r--r--tests/rustdoc-ui/doctest/display-output.stdout (renamed from tests/rustdoc-ui/display-output.stdout)0
-rw-r--r--tests/rustdoc-ui/doctest/doc-comment-multi-line-attr.rs (renamed from tests/rustdoc-ui/doc-comment-multi-line-attr.rs)2
-rw-r--r--tests/rustdoc-ui/doctest/doc-comment-multi-line-attr.stdout (renamed from tests/rustdoc-ui/doc-comment-multi-line-attr.stdout)0
-rw-r--r--tests/rustdoc-ui/doctest/doc-comment-multi-line-cfg-attr.rs (renamed from tests/rustdoc-ui/doc-comment-multi-line-cfg-attr.rs)2
-rw-r--r--tests/rustdoc-ui/doctest/doc-comment-multi-line-cfg-attr.stdout (renamed from tests/rustdoc-ui/doc-comment-multi-line-cfg-attr.stdout)0
-rw-r--r--tests/rustdoc-ui/doctest/doc-test-attr-pass.rs (renamed from tests/rustdoc-ui/doc-test-attr-pass.rs)0
-rw-r--r--tests/rustdoc-ui/doctest/doc-test-attr.rs (renamed from tests/rustdoc-ui/doc-test-attr.rs)0
-rw-r--r--tests/rustdoc-ui/doctest/doc-test-attr.stderr (renamed from tests/rustdoc-ui/doc-test-attr.stderr)0
-rw-r--r--tests/rustdoc-ui/doctest/doc-test-doctest-feature.rs (renamed from tests/rustdoc-ui/doc-test-doctest-feature.rs)2
-rw-r--r--tests/rustdoc-ui/doctest/doc-test-doctest-feature.stdout (renamed from tests/rustdoc-ui/doc-test-doctest-feature.stdout)0
-rw-r--r--tests/rustdoc-ui/doctest/doc-test-rustdoc-feature.rs (renamed from tests/rustdoc-ui/doc-test-rustdoc-feature.rs)2
-rw-r--r--tests/rustdoc-ui/doctest/doc-test-rustdoc-feature.stdout (renamed from tests/rustdoc-ui/doc-test-rustdoc-feature.stdout)0
-rw-r--r--tests/rustdoc-ui/doctest/doctest-edition.rs (renamed from tests/rustdoc-ui/doctest-edition.rs)0
-rw-r--r--tests/rustdoc-ui/doctest/doctest-edition.stderr (renamed from tests/rustdoc-ui/doctest-edition.stderr)0
-rw-r--r--tests/rustdoc-ui/doctest/doctest-multiline-crate-attribute.rs (renamed from tests/rustdoc-ui/doctest-multiline-crate-attribute.rs)2
-rw-r--r--tests/rustdoc-ui/doctest/doctest-multiline-crate-attribute.stdout (renamed from tests/rustdoc-ui/doctest-multiline-crate-attribute.stdout)0
-rw-r--r--tests/rustdoc-ui/doctest/doctest-output.rs (renamed from tests/rustdoc-ui/doctest-output.rs)2
-rw-r--r--tests/rustdoc-ui/doctest/doctest-output.stdout (renamed from tests/rustdoc-ui/doctest-output.stdout)0
-rw-r--r--tests/rustdoc-ui/doctest/failed-doctest-compile-fail.rs (renamed from tests/rustdoc-ui/failed-doctest-compile-fail.rs)2
-rw-r--r--tests/rustdoc-ui/doctest/failed-doctest-compile-fail.stdout (renamed from tests/rustdoc-ui/failed-doctest-compile-fail.stdout)0
-rw-r--r--tests/rustdoc-ui/doctest/failed-doctest-extra-semicolon-on-item.rs (renamed from tests/rustdoc-ui/failed-doctest-extra-semicolon-on-item.rs)2
-rw-r--r--tests/rustdoc-ui/doctest/failed-doctest-extra-semicolon-on-item.stdout (renamed from tests/rustdoc-ui/failed-doctest-extra-semicolon-on-item.stdout)0
-rw-r--r--tests/rustdoc-ui/doctest/failed-doctest-missing-codes.rs (renamed from tests/rustdoc-ui/failed-doctest-missing-codes.rs)2
-rw-r--r--tests/rustdoc-ui/doctest/failed-doctest-missing-codes.stdout (renamed from tests/rustdoc-ui/failed-doctest-missing-codes.stdout)0
-rw-r--r--tests/rustdoc-ui/doctest/failed-doctest-output-windows.rs (renamed from tests/rustdoc-ui/failed-doctest-output-windows.rs)2
-rw-r--r--tests/rustdoc-ui/doctest/failed-doctest-output-windows.stdout (renamed from tests/rustdoc-ui/failed-doctest-output-windows.stdout)0
-rw-r--r--tests/rustdoc-ui/doctest/failed-doctest-output.rs (renamed from tests/rustdoc-ui/failed-doctest-output.rs)2
-rw-r--r--tests/rustdoc-ui/doctest/failed-doctest-output.stdout (renamed from tests/rustdoc-ui/failed-doctest-output.stdout)0
-rw-r--r--tests/rustdoc-ui/doctest/failed-doctest-should-panic.rs (renamed from tests/rustdoc-ui/failed-doctest-should-panic.rs)2
-rw-r--r--tests/rustdoc-ui/doctest/failed-doctest-should-panic.stdout (renamed from tests/rustdoc-ui/failed-doctest-should-panic.stdout)0
-rw-r--r--tests/rustdoc-ui/doctest/no-run-flag-error.rs (renamed from tests/rustdoc-ui/no-run-flag-error.rs)0
-rw-r--r--tests/rustdoc-ui/doctest/no-run-flag-error.stderr (renamed from tests/rustdoc-ui/no-run-flag-error.stderr)0
-rw-r--r--tests/rustdoc-ui/doctest/no-run-flag.rs (renamed from tests/rustdoc-ui/no-run-flag.rs)2
-rw-r--r--tests/rustdoc-ui/doctest/no-run-flag.stdout (renamed from tests/rustdoc-ui/no-run-flag.stdout)0
-rw-r--r--tests/rustdoc-ui/doctest/nocapture-fail.rs (renamed from tests/rustdoc-ui/nocapture-fail.rs)4
-rw-r--r--tests/rustdoc-ui/doctest/nocapture-fail.stderr (renamed from tests/rustdoc-ui/nocapture-fail.stderr)0
-rw-r--r--tests/rustdoc-ui/doctest/nocapture-fail.stdout (renamed from tests/rustdoc-ui/nocapture-fail.stdout)0
-rw-r--r--tests/rustdoc-ui/doctest/nocapture.rs (renamed from tests/rustdoc-ui/nocapture.rs)2
-rw-r--r--tests/rustdoc-ui/doctest/nocapture.stderr (renamed from tests/rustdoc-ui/nocapture.stderr)0
-rw-r--r--tests/rustdoc-ui/doctest/nocapture.stdout (renamed from tests/rustdoc-ui/nocapture.stdout)0
-rw-r--r--tests/rustdoc-ui/doctest/private-doc-test.rs (renamed from tests/rustdoc-ui/private-doc-test.rs)0
-rw-r--r--tests/rustdoc-ui/doctest/private-item-doc-test.rs (renamed from tests/rustdoc-ui/private-item-doc-test.rs)0
-rw-r--r--tests/rustdoc-ui/doctest/private-item-doc-test.stderr (renamed from tests/rustdoc-ui/private-item-doc-test.stderr)0
-rw-r--r--tests/rustdoc-ui/doctest/private-public-item-doc-test.rs (renamed from tests/rustdoc-ui/private-public-item-doc-test.rs)0
-rw-r--r--tests/rustdoc-ui/doctest/private-public-item-doc-test.stderr (renamed from tests/rustdoc-ui/private-public-item-doc-test.stderr)0
-rw-r--r--tests/rustdoc-ui/doctest/public-reexported-item-doc-test.rs (renamed from tests/rustdoc-ui/public-reexported-item-doc-test.rs)0
-rw-r--r--tests/rustdoc-ui/doctest/run-directory.correct.stdout (renamed from tests/rustdoc-ui/run-directory.correct.stdout)0
-rw-r--r--tests/rustdoc-ui/doctest/run-directory.incorrect.stdout (renamed from tests/rustdoc-ui/run-directory.incorrect.stdout)0
-rw-r--r--tests/rustdoc-ui/doctest/run-directory.rs (renamed from tests/rustdoc-ui/run-directory.rs)6
-rw-r--r--tests/rustdoc-ui/doctest/test-compile-fail1.rs (renamed from tests/rustdoc-ui/test-compile-fail1.rs)0
-rw-r--r--tests/rustdoc-ui/doctest/test-compile-fail1.stderr (renamed from tests/rustdoc-ui/test-compile-fail1.stderr)0
-rw-r--r--tests/rustdoc-ui/doctest/test-compile-fail2.rs (renamed from tests/rustdoc-ui/test-compile-fail2.rs)0
-rw-r--r--tests/rustdoc-ui/doctest/test-compile-fail2.stderr (renamed from tests/rustdoc-ui/test-compile-fail2.stderr)0
-rw-r--r--tests/rustdoc-ui/doctest/test-compile-fail3.rs (renamed from tests/rustdoc-ui/test-compile-fail3.rs)0
-rw-r--r--tests/rustdoc-ui/doctest/test-compile-fail3.stderr (renamed from tests/rustdoc-ui/test-compile-fail3.stderr)0
-rw-r--r--tests/rustdoc-ui/doctest/test-no_std.rs (renamed from tests/rustdoc-ui/test-no_std.rs)2
-rw-r--r--tests/rustdoc-ui/doctest/test-no_std.stdout (renamed from tests/rustdoc-ui/test-no_std.stdout)0
-rw-r--r--tests/rustdoc-ui/doctest/test-type.rs (renamed from tests/rustdoc-ui/test-type.rs)2
-rw-r--r--tests/rustdoc-ui/doctest/test-type.stdout (renamed from tests/rustdoc-ui/test-type.stdout)0
-rw-r--r--tests/rustdoc-ui/doctest/unparseable-doc-test.rs (renamed from tests/rustdoc-ui/unparseable-doc-test.rs)2
-rw-r--r--tests/rustdoc-ui/doctest/unparseable-doc-test.stdout (renamed from tests/rustdoc-ui/unparseable-doc-test.stdout)0
-rw-r--r--tests/rustdoc-ui/error-in-impl-trait/infinite-recursive-type-2.rs9
-rw-r--r--tests/rustdoc-ui/error-in-impl-trait/infinite-recursive-type-impl-trait-return.rs (renamed from tests/rustdoc-ui/infinite-recursive-type-impl-trait-return.rs)0
-rw-r--r--tests/rustdoc-ui/error-in-impl-trait/infinite-recursive-type-impl-trait-return.stderr (renamed from tests/rustdoc-ui/infinite-recursive-type-impl-trait-return.stderr)0
-rw-r--r--tests/rustdoc-ui/error-in-impl-trait/infinite-recursive-type.rs (renamed from tests/rustdoc-ui/infinite-recursive-type-impl-trait.rs)5
-rw-r--r--tests/rustdoc-ui/generate-link-to-definition/generate-link-to-definition-opt-unstable.rs (renamed from tests/rustdoc-ui/generate-link-to-definition-opt-unstable.rs)0
-rw-r--r--tests/rustdoc-ui/generate-link-to-definition/generate-link-to-definition-opt-unstable.stderr (renamed from tests/rustdoc-ui/generate-link-to-definition-opt-unstable.stderr)0
-rw-r--r--tests/rustdoc-ui/generate-link-to-definition/generate-link-to-definition-opt.rs (renamed from tests/rustdoc-ui/generate-link-to-definition-opt.rs)0
-rw-r--r--tests/rustdoc-ui/generate-link-to-definition/generate-link-to-definition-opt.stderr (renamed from tests/rustdoc-ui/generate-link-to-definition-opt.stderr)0
-rw-r--r--tests/rustdoc-ui/generate-link-to-definition/generate-link-to-definition-opt2.rs (renamed from tests/rustdoc-ui/generate-link-to-definition-opt2.rs)0
-rw-r--r--tests/rustdoc-ui/generate-link-to-definition/generate-link-to-definition-opt2.stderr (renamed from tests/rustdoc-ui/generate-link-to-definition-opt2.stderr)0
-rw-r--r--tests/rustdoc-ui/ice-bug-report-url.rs14
-rw-r--r--tests/rustdoc-ui/ice-bug-report-url.stderr17
-rw-r--r--tests/rustdoc-ui/infinite-recursive-type-impl-trait.stderr16
-rw-r--r--tests/rustdoc-ui/intra-doc/assoc-item-not-in-scope.rs (renamed from tests/rustdoc-ui/assoc-item-not-in-scope.rs)0
-rw-r--r--tests/rustdoc-ui/intra-doc/assoc-item-not-in-scope.stderr (renamed from tests/rustdoc-ui/assoc-item-not-in-scope.stderr)0
-rw-r--r--tests/rustdoc-ui/intra-doc/auxiliary/inner-crate-enum.rs3
-rw-r--r--tests/rustdoc-ui/intra-doc/deny-intra-link-resolution-failure.rs (renamed from tests/rustdoc-ui/deny-intra-link-resolution-failure.rs)0
-rw-r--r--tests/rustdoc-ui/intra-doc/deny-intra-link-resolution-failure.stderr (renamed from tests/rustdoc-ui/deny-intra-link-resolution-failure.stderr)0
-rw-r--r--tests/rustdoc-ui/intra-doc/inline-external-enum.rs8
-rw-r--r--tests/rustdoc-ui/intra-doc/issue-110495-suffix-with-space.rs6
-rw-r--r--tests/rustdoc-ui/intra-doc/issue-110495-suffix-with-space.stderr55
-rw-r--r--tests/rustdoc-ui/intra-doc/issue-111189-resolution-ice.rs10
-rw-r--r--tests/rustdoc-ui/intra-doc/issue-111189-resolution-ice.stderr21
-rw-r--r--tests/rustdoc-ui/intra-doc/pub-export-lint.rs (renamed from tests/rustdoc-ui/pub-export-lint.rs)0
-rw-r--r--tests/rustdoc-ui/intra-doc/pub-export-lint.stderr (renamed from tests/rustdoc-ui/pub-export-lint.stderr)0
-rw-r--r--tests/rustdoc-ui/intra-doc/reference-link-reports-error-once.rs (renamed from tests/rustdoc-ui/reference-link-reports-error-once.rs)0
-rw-r--r--tests/rustdoc-ui/intra-doc/reference-link-reports-error-once.stderr (renamed from tests/rustdoc-ui/reference-link-reports-error-once.stderr)0
-rw-r--r--tests/rustdoc-ui/intra-doc/reference-links.rs (renamed from tests/rustdoc-ui/reference-links.rs)0
-rw-r--r--tests/rustdoc-ui/intra-doc/reference-links.stderr (renamed from tests/rustdoc-ui/reference-links.stderr)0
-rw-r--r--tests/rustdoc-ui/intra-doc/weird-syntax.rs140
-rw-r--r--tests/rustdoc-ui/intra-doc/weird-syntax.stderr272
-rw-r--r--tests/rustdoc-ui/issue-110629-private-type-cycle-dyn.rs12
-rw-r--r--tests/rustdoc-ui/issue-110629-private-type-cycle-dyn.stderr25
-rw-r--r--tests/rustdoc-ui/issue-110629-private-type-cycle.rs15
-rw-r--r--tests/rustdoc-ui/issues/auxiliary/empty-fn.rs (renamed from tests/rustdoc-ui/auxiliary/empty-fn.rs)0
-rw-r--r--tests/rustdoc-ui/issues/auxiliary/issue-61592.rs (renamed from tests/rustdoc-ui/auxiliary/issue-61592.rs)0
-rw-r--r--tests/rustdoc-ui/issues/auxiliary/panic-handler.rs (renamed from tests/rustdoc-ui/auxiliary/panic-handler.rs)0
-rw-r--r--tests/rustdoc-ui/issues/issue-101076.rs (renamed from tests/rustdoc-ui/issue-101076.rs)0
-rw-r--r--tests/rustdoc-ui/issues/issue-102986.rs (renamed from tests/rustdoc-ui/issue-102986.rs)0
-rw-r--r--tests/rustdoc-ui/issues/issue-102986.stderr (renamed from tests/rustdoc-ui/issue-102986.stderr)0
-rw-r--r--tests/rustdoc-ui/issues/issue-103997.rs (renamed from tests/rustdoc-ui/issue-103997.rs)0
-rw-r--r--tests/rustdoc-ui/issues/issue-103997.stderr (renamed from tests/rustdoc-ui/issue-103997.stderr)0
-rw-r--r--tests/rustdoc-ui/issues/issue-105334.rs (renamed from tests/rustdoc-ui/issue-105334.rs)0
-rw-r--r--tests/rustdoc-ui/issues/issue-105334.stderr (renamed from tests/rustdoc-ui/issue-105334.stderr)0
-rw-r--r--tests/rustdoc-ui/issues/issue-105737.rs (renamed from tests/rustdoc-ui/issue-105737.rs)0
-rw-r--r--tests/rustdoc-ui/issues/issue-105737.stderr (renamed from tests/rustdoc-ui/issue-105737.stderr)0
-rw-r--r--tests/rustdoc-ui/issues/issue-105742.rs (renamed from tests/rustdoc-ui/issue-105742.rs)8
-rw-r--r--tests/rustdoc-ui/issues/issue-105742.stderr (renamed from tests/rustdoc-ui/issue-105742.stderr)198
-rw-r--r--tests/rustdoc-ui/issues/issue-106213.rs (renamed from tests/rustdoc-ui/issue-106213.rs)0
-rw-r--r--tests/rustdoc-ui/issues/issue-106213.stderr (renamed from tests/rustdoc-ui/issue-106213.stderr)0
-rw-r--r--tests/rustdoc-ui/issues/issue-106226.rs (renamed from tests/rustdoc-ui/issue-106226.rs)0
-rw-r--r--tests/rustdoc-ui/issues/issue-106226.stderr (renamed from tests/rustdoc-ui/issue-106226.stderr)0
-rw-r--r--tests/rustdoc-ui/issues/issue-107918.rs (renamed from tests/rustdoc-ui/issue-107918.rs)0
-rw-r--r--tests/rustdoc-ui/issues/issue-109282-import-inline-merge.rs (renamed from tests/rustdoc-ui/issue-109282-import-inline-merge.rs)0
-rw-r--r--tests/rustdoc-ui/issues/issue-110900.rs28
-rw-r--r--tests/rustdoc-ui/issues/issue-58473-2.rs (renamed from tests/rustdoc-ui/issue-58473-2.rs)0
-rw-r--r--tests/rustdoc-ui/issues/issue-58473.rs (renamed from tests/rustdoc-ui/issue-58473.rs)0
-rw-r--r--tests/rustdoc-ui/issues/issue-61592-2.rs (renamed from tests/rustdoc-ui/issue-61592-2.rs)0
-rw-r--r--tests/rustdoc-ui/issues/issue-61592-2.stderr (renamed from tests/rustdoc-ui/issue-61592-2.stderr)0
-rw-r--r--tests/rustdoc-ui/issues/issue-61592.rs (renamed from tests/rustdoc-ui/issue-61592.rs)0
-rw-r--r--tests/rustdoc-ui/issues/issue-61592.stderr (renamed from tests/rustdoc-ui/issue-61592.stderr)0
-rw-r--r--tests/rustdoc-ui/issues/issue-61732.rs (renamed from tests/rustdoc-ui/issue-61732.rs)0
-rw-r--r--tests/rustdoc-ui/issues/issue-61732.stderr (renamed from tests/rustdoc-ui/issue-61732.stderr)0
-rw-r--r--tests/rustdoc-ui/issues/issue-74134.private.stderr (renamed from tests/rustdoc-ui/issue-74134.private.stderr)0
-rw-r--r--tests/rustdoc-ui/issues/issue-74134.public.stderr (renamed from tests/rustdoc-ui/issue-74134.public.stderr)0
-rw-r--r--tests/rustdoc-ui/issues/issue-74134.rs (renamed from tests/rustdoc-ui/issue-74134.rs)0
-rw-r--r--tests/rustdoc-ui/issues/issue-79465.rs (renamed from tests/rustdoc-ui/issue-79465.rs)0
-rw-r--r--tests/rustdoc-ui/issues/issue-79465.stderr (renamed from tests/rustdoc-ui/issue-79465.stderr)0
-rw-r--r--tests/rustdoc-ui/issues/issue-79467.rs (renamed from tests/rustdoc-ui/issue-79467.rs)0
-rw-r--r--tests/rustdoc-ui/issues/issue-79467.stderr (renamed from tests/rustdoc-ui/issue-79467.stderr)0
-rw-r--r--tests/rustdoc-ui/issues/issue-79494.rs (renamed from tests/rustdoc-ui/issue-79494.rs)0
-rw-r--r--tests/rustdoc-ui/issues/issue-79494.stderr (renamed from tests/rustdoc-ui/issue-79494.stderr)0
-rw-r--r--tests/rustdoc-ui/issues/issue-80992.rs (renamed from tests/rustdoc-ui/issue-80992.rs)2
-rw-r--r--tests/rustdoc-ui/issues/issue-80992.stdout (renamed from tests/rustdoc-ui/issue-80992.stdout)0
-rw-r--r--tests/rustdoc-ui/issues/issue-81662-shortness.rs (renamed from tests/rustdoc-ui/issue-81662-shortness.rs)2
-rw-r--r--tests/rustdoc-ui/issues/issue-81662-shortness.stdout (renamed from tests/rustdoc-ui/issue-81662-shortness.stdout)0
-rw-r--r--tests/rustdoc-ui/issues/issue-83883-describe-lints.rs (renamed from tests/rustdoc-ui/issue-83883-describe-lints.rs)0
-rw-r--r--tests/rustdoc-ui/issues/issue-83883-describe-lints.stdout (renamed from tests/rustdoc-ui/issue-83883-describe-lints.stdout)0
-rw-r--r--tests/rustdoc-ui/issues/issue-91134.rs (renamed from tests/rustdoc-ui/issue-91134.rs)2
-rw-r--r--tests/rustdoc-ui/issues/issue-91134.stdout (renamed from tests/rustdoc-ui/issue-91134.stdout)0
-rw-r--r--tests/rustdoc-ui/issues/issue-91713.rs (renamed from tests/rustdoc-ui/issue-91713.rs)0
-rw-r--r--tests/rustdoc-ui/issues/issue-91713.stderr (renamed from tests/rustdoc-ui/issue-91713.stderr)0
-rw-r--r--tests/rustdoc-ui/issues/issue-91713.stdout (renamed from tests/rustdoc-ui/issue-91713.stdout)0
-rw-r--r--tests/rustdoc-ui/issues/issue-96287.rs (renamed from tests/rustdoc-ui/issue-96287.rs)0
-rw-r--r--tests/rustdoc-ui/issues/issue-96287.stderr (renamed from tests/rustdoc-ui/issue-96287.stderr)0
-rw-r--r--tests/rustdoc-ui/issues/issue-98690.rs (renamed from tests/rustdoc-ui/issue-98690.rs)0
-rw-r--r--tests/rustdoc-ui/issues/issue-98690.stderr (renamed from tests/rustdoc-ui/issue-98690.stderr)0
-rw-r--r--tests/rustdoc-ui/lints/bare-urls.fixed (renamed from tests/rustdoc-ui/bare-urls.fixed)0
-rw-r--r--tests/rustdoc-ui/lints/bare-urls.rs (renamed from tests/rustdoc-ui/bare-urls.rs)0
-rw-r--r--tests/rustdoc-ui/lints/bare-urls.stderr (renamed from tests/rustdoc-ui/bare-urls.stderr)0
-rw-r--r--tests/rustdoc-ui/lints/check-attr.rs (renamed from tests/rustdoc-ui/check-attr.rs)0
-rw-r--r--tests/rustdoc-ui/lints/check-attr.stderr (renamed from tests/rustdoc-ui/check-attr.stderr)0
-rw-r--r--tests/rustdoc-ui/lints/check-fail.rs (renamed from tests/rustdoc-ui/check-fail.rs)0
-rw-r--r--tests/rustdoc-ui/lints/check-fail.stderr (renamed from tests/rustdoc-ui/check-fail.stderr)0
-rw-r--r--tests/rustdoc-ui/lints/check.rs (renamed from tests/rustdoc-ui/check.rs)0
-rw-r--r--tests/rustdoc-ui/lints/check.stderr (renamed from tests/rustdoc-ui/check.stderr)0
-rw-r--r--tests/rustdoc-ui/lints/deny-missing-docs-crate.rs (renamed from tests/rustdoc-ui/deny-missing-docs-crate.rs)0
-rw-r--r--tests/rustdoc-ui/lints/deny-missing-docs-crate.stderr (renamed from tests/rustdoc-ui/deny-missing-docs-crate.stderr)0
-rw-r--r--tests/rustdoc-ui/lints/deny-missing-docs-macro.rs (renamed from tests/rustdoc-ui/deny-missing-docs-macro.rs)0
-rw-r--r--tests/rustdoc-ui/lints/deny-missing-docs-macro.stderr (renamed from tests/rustdoc-ui/deny-missing-docs-macro.stderr)0
-rw-r--r--tests/rustdoc-ui/lints/doc-attr.rs (renamed from tests/rustdoc-ui/doc-attr.rs)0
-rw-r--r--tests/rustdoc-ui/lints/doc-attr.stderr (renamed from tests/rustdoc-ui/doc-attr.stderr)0
-rw-r--r--tests/rustdoc-ui/lints/doc-spotlight.fixed (renamed from tests/rustdoc-ui/doc-spotlight.fixed)0
-rw-r--r--tests/rustdoc-ui/lints/doc-spotlight.rs (renamed from tests/rustdoc-ui/doc-spotlight.rs)0
-rw-r--r--tests/rustdoc-ui/lints/doc-spotlight.stderr (renamed from tests/rustdoc-ui/doc-spotlight.stderr)0
-rw-r--r--tests/rustdoc-ui/lints/doc-without-codeblock.rs (renamed from tests/rustdoc-ui/doc-without-codeblock.rs)0
-rw-r--r--tests/rustdoc-ui/lints/doc-without-codeblock.stderr (renamed from tests/rustdoc-ui/doc-without-codeblock.stderr)0
-rw-r--r--tests/rustdoc-ui/lints/doc_cfg_hide.rs (renamed from tests/rustdoc-ui/doc_cfg_hide.rs)0
-rw-r--r--tests/rustdoc-ui/lints/doc_cfg_hide.stderr (renamed from tests/rustdoc-ui/doc_cfg_hide.stderr)2
-rw-r--r--tests/rustdoc-ui/lints/expect-tool-lint-rfc-2383.rs (renamed from tests/rustdoc-ui/expect-tool-lint-rfc-2383.rs)0
-rw-r--r--tests/rustdoc-ui/lints/expect-tool-lint-rfc-2383.stderr (renamed from tests/rustdoc-ui/expect-tool-lint-rfc-2383.stderr)0
-rw-r--r--tests/rustdoc-ui/lints/feature-gate-rustdoc_missing_doc_code_examples.rs (renamed from tests/rustdoc-ui/feature-gate-rustdoc_missing_doc_code_examples.rs)0
-rw-r--r--tests/rustdoc-ui/lints/feature-gate-rustdoc_missing_doc_code_examples.stderr (renamed from tests/rustdoc-ui/feature-gate-rustdoc_missing_doc_code_examples.stderr)0
-rw-r--r--tests/rustdoc-ui/lints/invalid-doc-attr.rs (renamed from tests/rustdoc-ui/invalid-doc-attr.rs)2
-rw-r--r--tests/rustdoc-ui/lints/invalid-doc-attr.stderr (renamed from tests/rustdoc-ui/invalid-doc-attr.stderr)2
-rw-r--r--tests/rustdoc-ui/lints/invalid-html-self-closing-tag.rs (renamed from tests/rustdoc-ui/invalid-html-self-closing-tag.rs)0
-rw-r--r--tests/rustdoc-ui/lints/invalid-html-self-closing-tag.stderr (renamed from tests/rustdoc-ui/invalid-html-self-closing-tag.stderr)0
-rw-r--r--tests/rustdoc-ui/lints/invalid-html-tags.rs (renamed from tests/rustdoc-ui/invalid-html-tags.rs)0
-rw-r--r--tests/rustdoc-ui/lints/invalid-html-tags.stderr (renamed from tests/rustdoc-ui/invalid-html-tags.stderr)0
-rw-r--r--tests/rustdoc-ui/lints/lint-group.rs (renamed from tests/rustdoc-ui/lint-group.rs)0
-rw-r--r--tests/rustdoc-ui/lints/lint-group.stderr (renamed from tests/rustdoc-ui/lint-group.stderr)0
-rw-r--r--tests/rustdoc-ui/lints/lint-missing-doc-code-example.rs (renamed from tests/rustdoc-ui/lint-missing-doc-code-example.rs)0
-rw-r--r--tests/rustdoc-ui/lints/lint-missing-doc-code-example.stderr (renamed from tests/rustdoc-ui/lint-missing-doc-code-example.stderr)0
-rw-r--r--tests/rustdoc-ui/lints/no-crate-level-doc-lint.rs (renamed from tests/rustdoc-ui/no-crate-level-doc-lint.rs)0
-rw-r--r--tests/rustdoc-ui/lints/no-crate-level-doc-lint.stderr (renamed from tests/rustdoc-ui/no-crate-level-doc-lint.stderr)0
-rw-r--r--tests/rustdoc-ui/lints/renamed-lint-still-applies.rs (renamed from tests/rustdoc-ui/renamed-lint-still-applies.rs)0
-rw-r--r--tests/rustdoc-ui/lints/renamed-lint-still-applies.stderr (renamed from tests/rustdoc-ui/renamed-lint-still-applies.stderr)0
-rw-r--r--tests/rustdoc-ui/lints/rustdoc-all-only-stable-lints.rs (renamed from tests/rustdoc-ui/rustdoc-all-only-stable-lints.rs)0
-rw-r--r--tests/rustdoc-ui/lints/unknown-renamed-lints.rs (renamed from tests/rustdoc-ui/unknown-renamed-lints.rs)0
-rw-r--r--tests/rustdoc-ui/lints/unknown-renamed-lints.stderr (renamed from tests/rustdoc-ui/unknown-renamed-lints.stderr)0
-rw-r--r--tests/rustdoc-ui/lints/unused-braces-lint.rs (renamed from tests/rustdoc-ui/unused-braces-lint.rs)0
-rw-r--r--tests/rustdoc-ui/lints/unused.rs (renamed from tests/rustdoc-ui/unused.rs)0
-rw-r--r--tests/rustdoc-ui/scrape-examples/scrape-examples-fail-if-type-error.rs (renamed from tests/rustdoc-ui/scrape-examples-fail-if-type-error.rs)0
-rw-r--r--tests/rustdoc-ui/scrape-examples/scrape-examples-fail-if-type-error.stderr (renamed from tests/rustdoc-ui/scrape-examples-fail-if-type-error.stderr)0
-rw-r--r--tests/rustdoc-ui/scrape-examples/scrape-examples-ice.rs (renamed from tests/rustdoc-ui/scrape-examples-ice.rs)0
-rw-r--r--tests/rustdoc-ui/scrape-examples/scrape-examples-wrong-options-1.rs (renamed from tests/rustdoc-ui/scrape-examples-wrong-options-1.rs)0
-rw-r--r--tests/rustdoc-ui/scrape-examples/scrape-examples-wrong-options-1.stderr (renamed from tests/rustdoc-ui/scrape-examples-wrong-options-1.stderr)0
-rw-r--r--tests/rustdoc-ui/scrape-examples/scrape-examples-wrong-options-2.rs (renamed from tests/rustdoc-ui/scrape-examples-wrong-options-2.rs)0
-rw-r--r--tests/rustdoc-ui/scrape-examples/scrape-examples-wrong-options-2.stderr (renamed from tests/rustdoc-ui/scrape-examples-wrong-options-2.stderr)0
-rw-r--r--tests/rustdoc-ui/unescaped_backticks.rs354
-rw-r--r--tests/rustdoc-ui/unescaped_backticks.stderr971
218 files changed, 2168 insertions, 96 deletions
diff --git a/tests/rustdoc-ui/check-cfg-test.stderr b/tests/rustdoc-ui/check-cfg/check-cfg-test.stderr
index 9770be2f1..9770be2f1 100644
--- a/tests/rustdoc-ui/check-cfg-test.stderr
+++ b/tests/rustdoc-ui/check-cfg/check-cfg-test.stderr
diff --git a/tests/rustdoc-ui/check-cfg-unstable.rs b/tests/rustdoc-ui/check-cfg/check-cfg-unstable.rs
index 5c500ce6c..5c500ce6c 100644
--- a/tests/rustdoc-ui/check-cfg-unstable.rs
+++ b/tests/rustdoc-ui/check-cfg/check-cfg-unstable.rs
diff --git a/tests/rustdoc-ui/check-cfg-unstable.stderr b/tests/rustdoc-ui/check-cfg/check-cfg-unstable.stderr
index 9b27c2bc0..9b27c2bc0 100644
--- a/tests/rustdoc-ui/check-cfg-unstable.stderr
+++ b/tests/rustdoc-ui/check-cfg/check-cfg-unstable.stderr
diff --git a/tests/rustdoc-ui/check-cfg.rs b/tests/rustdoc-ui/check-cfg/check-cfg.rs
index fa8789ad3..fa8789ad3 100644
--- a/tests/rustdoc-ui/check-cfg.rs
+++ b/tests/rustdoc-ui/check-cfg/check-cfg.rs
diff --git a/tests/rustdoc-ui/check-cfg.stderr b/tests/rustdoc-ui/check-cfg/check-cfg.stderr
index 1db8e1d91..03fb6f96f 100644
--- a/tests/rustdoc-ui/check-cfg.stderr
+++ b/tests/rustdoc-ui/check-cfg/check-cfg.stderr
@@ -2,7 +2,7 @@ warning: unexpected `cfg` condition name
--> $DIR/check-cfg.rs:5:7
|
LL | #[cfg(uniz)]
- | ^^^^ help: did you mean: `unix`
+ | ^^^^ help: there is a config with a similar name: `unix`
|
= note: `#[warn(unexpected_cfgs)]` on by default
diff --git a/tests/rustdoc-ui/auxiliary/extern_macros.rs b/tests/rustdoc-ui/doctest/auxiliary/extern_macros.rs
index ee1fec4c5..ee1fec4c5 100644
--- a/tests/rustdoc-ui/auxiliary/extern_macros.rs
+++ b/tests/rustdoc-ui/doctest/auxiliary/extern_macros.rs
diff --git a/tests/rustdoc-ui/block-doc-comment.rs b/tests/rustdoc-ui/doctest/block-doc-comment.rs
index ce529916e..ce529916e 100644
--- a/tests/rustdoc-ui/block-doc-comment.rs
+++ b/tests/rustdoc-ui/doctest/block-doc-comment.rs
diff --git a/tests/rustdoc-ui/block-doc-comment.stdout b/tests/rustdoc-ui/doctest/block-doc-comment.stdout
index 7326c0a25..7326c0a25 100644
--- a/tests/rustdoc-ui/block-doc-comment.stdout
+++ b/tests/rustdoc-ui/doctest/block-doc-comment.stdout
diff --git a/tests/rustdoc-ui/cfg-test.rs b/tests/rustdoc-ui/doctest/cfg-test.rs
index d40b92837..a263baa97 100644
--- a/tests/rustdoc-ui/cfg-test.rs
+++ b/tests/rustdoc-ui/doctest/cfg-test.rs
@@ -1,6 +1,6 @@
// check-pass
// compile-flags:--test --test-args --test-threads=1
-// normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+// normalize-stdout-test: "tests/rustdoc-ui/doctest" -> "$$DIR"
// normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
// Crates like core have doctests gated on `cfg(not(test))` so we need to make
diff --git a/tests/rustdoc-ui/cfg-test.stdout b/tests/rustdoc-ui/doctest/cfg-test.stdout
index 2960ff8d3..2960ff8d3 100644
--- a/tests/rustdoc-ui/cfg-test.stdout
+++ b/tests/rustdoc-ui/doctest/cfg-test.stdout
diff --git a/tests/rustdoc-ui/check-attr-test.rs b/tests/rustdoc-ui/doctest/check-attr-test.rs
index e95547014..e95547014 100644
--- a/tests/rustdoc-ui/check-attr-test.rs
+++ b/tests/rustdoc-ui/doctest/check-attr-test.rs
diff --git a/tests/rustdoc-ui/check-attr-test.stderr b/tests/rustdoc-ui/doctest/check-attr-test.stderr
index 01beba1ff..01beba1ff 100644
--- a/tests/rustdoc-ui/check-attr-test.stderr
+++ b/tests/rustdoc-ui/doctest/check-attr-test.stderr
diff --git a/tests/rustdoc-ui/check-cfg-test.rs b/tests/rustdoc-ui/doctest/check-cfg-test.rs
index 920432276..49a801c3f 100644
--- a/tests/rustdoc-ui/check-cfg-test.rs
+++ b/tests/rustdoc-ui/doctest/check-cfg-test.rs
@@ -1,7 +1,7 @@
// check-pass
// compile-flags: --test --nocapture --check-cfg=values(feature,"test") -Z unstable-options
-// normalize-stderr-test: "tests/rustdoc-ui" -> "$$DIR"
-// normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+// normalize-stderr-test: "tests/rustdoc-ui/doctest" -> "$$DIR"
+// normalize-stdout-test: "tests/rustdoc-ui/doctest" -> "$$DIR"
// normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
/// The doctest will produce a warning because feature invalid is unexpected
diff --git a/tests/rustdoc-ui/doctest/check-cfg-test.stderr b/tests/rustdoc-ui/doctest/check-cfg-test.stderr
new file mode 100644
index 000000000..f84543c20
--- /dev/null
+++ b/tests/rustdoc-ui/doctest/check-cfg-test.stderr
@@ -0,0 +1,11 @@
+warning: unexpected `cfg` condition value
+ --> $DIR/check-cfg-test.rs:9:7
+ |
+LL | #[cfg(feature = "invalid")]
+ | ^^^^^^^^^^^^^^^^^^^
+ |
+ = note: expected values for `feature` are: `test`
+ = note: `#[warn(unexpected_cfgs)]` on by default
+
+warning: 1 warning emitted
+
diff --git a/tests/rustdoc-ui/check-cfg-test.stdout b/tests/rustdoc-ui/doctest/check-cfg-test.stdout
index b7db49bcf..b7db49bcf 100644
--- a/tests/rustdoc-ui/check-cfg-test.stdout
+++ b/tests/rustdoc-ui/doctest/check-cfg-test.stdout
diff --git a/tests/rustdoc-ui/display-output.rs b/tests/rustdoc-ui/doctest/display-output.rs
index 23bc54e3c..7a26dbff9 100644
--- a/tests/rustdoc-ui/display-output.rs
+++ b/tests/rustdoc-ui/doctest/display-output.rs
@@ -3,7 +3,7 @@
// check-pass
// edition:2018
// compile-flags:--test --test-args=--show-output
-// normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+// normalize-stdout-test: "tests/rustdoc-ui/doctest" -> "$$DIR"
// normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
/// ```
diff --git a/tests/rustdoc-ui/display-output.stdout b/tests/rustdoc-ui/doctest/display-output.stdout
index ad25d1ce5..ad25d1ce5 100644
--- a/tests/rustdoc-ui/display-output.stdout
+++ b/tests/rustdoc-ui/doctest/display-output.stdout
diff --git a/tests/rustdoc-ui/doc-comment-multi-line-attr.rs b/tests/rustdoc-ui/doctest/doc-comment-multi-line-attr.rs
index db674e229..75508f435 100644
--- a/tests/rustdoc-ui/doc-comment-multi-line-attr.rs
+++ b/tests/rustdoc-ui/doctest/doc-comment-multi-line-attr.rs
@@ -1,6 +1,6 @@
// Regression test for #97440: Multiline inner attribute triggers ICE during doctest
// compile-flags:--test
-// normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+// normalize-stdout-test: "tests/rustdoc-ui/doctest" -> "$$DIR"
// normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
// check-pass
diff --git a/tests/rustdoc-ui/doc-comment-multi-line-attr.stdout b/tests/rustdoc-ui/doctest/doc-comment-multi-line-attr.stdout
index e47edbd2a..e47edbd2a 100644
--- a/tests/rustdoc-ui/doc-comment-multi-line-attr.stdout
+++ b/tests/rustdoc-ui/doctest/doc-comment-multi-line-attr.stdout
diff --git a/tests/rustdoc-ui/doc-comment-multi-line-cfg-attr.rs b/tests/rustdoc-ui/doctest/doc-comment-multi-line-cfg-attr.rs
index 6ce3cb9fc..3b0b27edb 100644
--- a/tests/rustdoc-ui/doc-comment-multi-line-cfg-attr.rs
+++ b/tests/rustdoc-ui/doctest/doc-comment-multi-line-cfg-attr.rs
@@ -1,5 +1,5 @@
// compile-flags:--test
-// normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+// normalize-stdout-test: "tests/rustdoc-ui/doctest" -> "$$DIR"
// normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
// check-pass
diff --git a/tests/rustdoc-ui/doc-comment-multi-line-cfg-attr.stdout b/tests/rustdoc-ui/doctest/doc-comment-multi-line-cfg-attr.stdout
index bf3521e4f..bf3521e4f 100644
--- a/tests/rustdoc-ui/doc-comment-multi-line-cfg-attr.stdout
+++ b/tests/rustdoc-ui/doctest/doc-comment-multi-line-cfg-attr.stdout
diff --git a/tests/rustdoc-ui/doc-test-attr-pass.rs b/tests/rustdoc-ui/doctest/doc-test-attr-pass.rs
index 12608f244..12608f244 100644
--- a/tests/rustdoc-ui/doc-test-attr-pass.rs
+++ b/tests/rustdoc-ui/doctest/doc-test-attr-pass.rs
diff --git a/tests/rustdoc-ui/doc-test-attr.rs b/tests/rustdoc-ui/doctest/doc-test-attr.rs
index 46178ad86..46178ad86 100644
--- a/tests/rustdoc-ui/doc-test-attr.rs
+++ b/tests/rustdoc-ui/doctest/doc-test-attr.rs
diff --git a/tests/rustdoc-ui/doc-test-attr.stderr b/tests/rustdoc-ui/doctest/doc-test-attr.stderr
index 5e6014954..5e6014954 100644
--- a/tests/rustdoc-ui/doc-test-attr.stderr
+++ b/tests/rustdoc-ui/doctest/doc-test-attr.stderr
diff --git a/tests/rustdoc-ui/doc-test-doctest-feature.rs b/tests/rustdoc-ui/doctest/doc-test-doctest-feature.rs
index 88cf44e64..9c1f4936e 100644
--- a/tests/rustdoc-ui/doc-test-doctest-feature.rs
+++ b/tests/rustdoc-ui/doctest/doc-test-doctest-feature.rs
@@ -1,6 +1,6 @@
// check-pass
// compile-flags:--test
-// normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+// normalize-stdout-test: "tests/rustdoc-ui/doctest" -> "$$DIR"
// normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
// Make sure `cfg(doctest)` is set when finding doctests but not inside
diff --git a/tests/rustdoc-ui/doc-test-doctest-feature.stdout b/tests/rustdoc-ui/doctest/doc-test-doctest-feature.stdout
index d7de1f105..d7de1f105 100644
--- a/tests/rustdoc-ui/doc-test-doctest-feature.stdout
+++ b/tests/rustdoc-ui/doctest/doc-test-doctest-feature.stdout
diff --git a/tests/rustdoc-ui/doc-test-rustdoc-feature.rs b/tests/rustdoc-ui/doctest/doc-test-rustdoc-feature.rs
index dc72a4857..1f90d13af 100644
--- a/tests/rustdoc-ui/doc-test-rustdoc-feature.rs
+++ b/tests/rustdoc-ui/doctest/doc-test-rustdoc-feature.rs
@@ -1,6 +1,6 @@
// check-pass
// compile-flags:--test
-// normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+// normalize-stdout-test: "tests/rustdoc-ui/doctest" -> "$$DIR"
// normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
#![feature(doc_cfg)]
diff --git a/tests/rustdoc-ui/doc-test-rustdoc-feature.stdout b/tests/rustdoc-ui/doctest/doc-test-rustdoc-feature.stdout
index 5b07fc4c8..5b07fc4c8 100644
--- a/tests/rustdoc-ui/doc-test-rustdoc-feature.stdout
+++ b/tests/rustdoc-ui/doctest/doc-test-rustdoc-feature.stdout
diff --git a/tests/rustdoc-ui/doctest-edition.rs b/tests/rustdoc-ui/doctest/doctest-edition.rs
index b0787be97..b0787be97 100644
--- a/tests/rustdoc-ui/doctest-edition.rs
+++ b/tests/rustdoc-ui/doctest/doctest-edition.rs
diff --git a/tests/rustdoc-ui/doctest-edition.stderr b/tests/rustdoc-ui/doctest/doctest-edition.stderr
index 8a3329aa3..8a3329aa3 100644
--- a/tests/rustdoc-ui/doctest-edition.stderr
+++ b/tests/rustdoc-ui/doctest/doctest-edition.stderr
diff --git a/tests/rustdoc-ui/doctest-multiline-crate-attribute.rs b/tests/rustdoc-ui/doctest/doctest-multiline-crate-attribute.rs
index 260f5a7a6..a3bde6cb9 100644
--- a/tests/rustdoc-ui/doctest-multiline-crate-attribute.rs
+++ b/tests/rustdoc-ui/doctest/doctest-multiline-crate-attribute.rs
@@ -1,5 +1,5 @@
// compile-flags:--test --test-args=--test-threads=1
-// normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+// normalize-stdout-test: "tests/rustdoc-ui/doctest" -> "$$DIR"
// normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
// check-pass
diff --git a/tests/rustdoc-ui/doctest-multiline-crate-attribute.stdout b/tests/rustdoc-ui/doctest/doctest-multiline-crate-attribute.stdout
index 07a4f657d..07a4f657d 100644
--- a/tests/rustdoc-ui/doctest-multiline-crate-attribute.stdout
+++ b/tests/rustdoc-ui/doctest/doctest-multiline-crate-attribute.stdout
diff --git a/tests/rustdoc-ui/doctest-output.rs b/tests/rustdoc-ui/doctest/doctest-output.rs
index 303f76896..26754b73f 100644
--- a/tests/rustdoc-ui/doctest-output.rs
+++ b/tests/rustdoc-ui/doctest/doctest-output.rs
@@ -1,7 +1,7 @@
// edition:2018
// aux-build:extern_macros.rs
// compile-flags:--test --test-args=--test-threads=1
-// normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+// normalize-stdout-test: "tests/rustdoc-ui/doctest" -> "$$DIR"
// normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
// check-pass
diff --git a/tests/rustdoc-ui/doctest-output.stdout b/tests/rustdoc-ui/doctest/doctest-output.stdout
index 35b0e366f..35b0e366f 100644
--- a/tests/rustdoc-ui/doctest-output.stdout
+++ b/tests/rustdoc-ui/doctest/doctest-output.stdout
diff --git a/tests/rustdoc-ui/failed-doctest-compile-fail.rs b/tests/rustdoc-ui/doctest/failed-doctest-compile-fail.rs
index 4dfca600f..53b3857df 100644
--- a/tests/rustdoc-ui/failed-doctest-compile-fail.rs
+++ b/tests/rustdoc-ui/doctest/failed-doctest-compile-fail.rs
@@ -2,7 +2,7 @@
// adapted to use that, and that normalize line can go away
// compile-flags:--test
-// normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+// normalize-stdout-test: "tests/rustdoc-ui/doctest" -> "$$DIR"
// normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
// failure-status: 101
diff --git a/tests/rustdoc-ui/failed-doctest-compile-fail.stdout b/tests/rustdoc-ui/doctest/failed-doctest-compile-fail.stdout
index af3a90a74..af3a90a74 100644
--- a/tests/rustdoc-ui/failed-doctest-compile-fail.stdout
+++ b/tests/rustdoc-ui/doctest/failed-doctest-compile-fail.stdout
diff --git a/tests/rustdoc-ui/failed-doctest-extra-semicolon-on-item.rs b/tests/rustdoc-ui/doctest/failed-doctest-extra-semicolon-on-item.rs
index 03a5b9d5d..84e4d6160 100644
--- a/tests/rustdoc-ui/failed-doctest-extra-semicolon-on-item.rs
+++ b/tests/rustdoc-ui/doctest/failed-doctest-extra-semicolon-on-item.rs
@@ -2,7 +2,7 @@
// adapted to use that, and that normalize line can go away
// compile-flags:--test
-// normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+// normalize-stdout-test: "tests/rustdoc-ui/doctest" -> "$$DIR"
// normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
// failure-status: 101
diff --git a/tests/rustdoc-ui/failed-doctest-extra-semicolon-on-item.stdout b/tests/rustdoc-ui/doctest/failed-doctest-extra-semicolon-on-item.stdout
index 61468b6c7..61468b6c7 100644
--- a/tests/rustdoc-ui/failed-doctest-extra-semicolon-on-item.stdout
+++ b/tests/rustdoc-ui/doctest/failed-doctest-extra-semicolon-on-item.stdout
diff --git a/tests/rustdoc-ui/failed-doctest-missing-codes.rs b/tests/rustdoc-ui/doctest/failed-doctest-missing-codes.rs
index 66a229a0c..4e3b848fc 100644
--- a/tests/rustdoc-ui/failed-doctest-missing-codes.rs
+++ b/tests/rustdoc-ui/doctest/failed-doctest-missing-codes.rs
@@ -2,7 +2,7 @@
// adapted to use that, and that normalize line can go away
// compile-flags:--test
-// normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+// normalize-stdout-test: "tests/rustdoc-ui/doctest" -> "$$DIR"
// normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
// failure-status: 101
diff --git a/tests/rustdoc-ui/failed-doctest-missing-codes.stdout b/tests/rustdoc-ui/doctest/failed-doctest-missing-codes.stdout
index bacbb47b5..bacbb47b5 100644
--- a/tests/rustdoc-ui/failed-doctest-missing-codes.stdout
+++ b/tests/rustdoc-ui/doctest/failed-doctest-missing-codes.stdout
diff --git a/tests/rustdoc-ui/failed-doctest-output-windows.rs b/tests/rustdoc-ui/doctest/failed-doctest-output-windows.rs
index 456a9e68f..6bc6c33c7 100644
--- a/tests/rustdoc-ui/failed-doctest-output-windows.rs
+++ b/tests/rustdoc-ui/doctest/failed-doctest-output-windows.rs
@@ -7,7 +7,7 @@
// compile-flags:--test --test-args --test-threads=1
// rustc-env:RUST_BACKTRACE=0
-// normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+// normalize-stdout-test: "tests/rustdoc-ui/doctest" -> "$$DIR"
// normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
// failure-status: 101
diff --git a/tests/rustdoc-ui/failed-doctest-output-windows.stdout b/tests/rustdoc-ui/doctest/failed-doctest-output-windows.stdout
index 6c147054d..6c147054d 100644
--- a/tests/rustdoc-ui/failed-doctest-output-windows.stdout
+++ b/tests/rustdoc-ui/doctest/failed-doctest-output-windows.stdout
diff --git a/tests/rustdoc-ui/failed-doctest-output.rs b/tests/rustdoc-ui/doctest/failed-doctest-output.rs
index 77647f8ec..3e1312382 100644
--- a/tests/rustdoc-ui/failed-doctest-output.rs
+++ b/tests/rustdoc-ui/doctest/failed-doctest-output.rs
@@ -7,7 +7,7 @@
// compile-flags:--test --test-args --test-threads=1
// rustc-env:RUST_BACKTRACE=0
-// normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+// normalize-stdout-test: "tests/rustdoc-ui/doctest" -> "$$DIR"
// normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
// failure-status: 101
diff --git a/tests/rustdoc-ui/failed-doctest-output.stdout b/tests/rustdoc-ui/doctest/failed-doctest-output.stdout
index 630198a56..630198a56 100644
--- a/tests/rustdoc-ui/failed-doctest-output.stdout
+++ b/tests/rustdoc-ui/doctest/failed-doctest-output.stdout
diff --git a/tests/rustdoc-ui/failed-doctest-should-panic.rs b/tests/rustdoc-ui/doctest/failed-doctest-should-panic.rs
index c134f8006..36284e814 100644
--- a/tests/rustdoc-ui/failed-doctest-should-panic.rs
+++ b/tests/rustdoc-ui/doctest/failed-doctest-should-panic.rs
@@ -2,7 +2,7 @@
// adapted to use that, and that normalize line can go away
// compile-flags:--test
-// normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+// normalize-stdout-test: "tests/rustdoc-ui/doctest" -> "$$DIR"
// normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
// failure-status: 101
diff --git a/tests/rustdoc-ui/failed-doctest-should-panic.stdout b/tests/rustdoc-ui/doctest/failed-doctest-should-panic.stdout
index 57a20092a..57a20092a 100644
--- a/tests/rustdoc-ui/failed-doctest-should-panic.stdout
+++ b/tests/rustdoc-ui/doctest/failed-doctest-should-panic.stdout
diff --git a/tests/rustdoc-ui/no-run-flag-error.rs b/tests/rustdoc-ui/doctest/no-run-flag-error.rs
index 4ead62148..4ead62148 100644
--- a/tests/rustdoc-ui/no-run-flag-error.rs
+++ b/tests/rustdoc-ui/doctest/no-run-flag-error.rs
diff --git a/tests/rustdoc-ui/no-run-flag-error.stderr b/tests/rustdoc-ui/doctest/no-run-flag-error.stderr
index d032646c3..d032646c3 100644
--- a/tests/rustdoc-ui/no-run-flag-error.stderr
+++ b/tests/rustdoc-ui/doctest/no-run-flag-error.stderr
diff --git a/tests/rustdoc-ui/no-run-flag.rs b/tests/rustdoc-ui/doctest/no-run-flag.rs
index 181730eb4..1cf3b7c4b 100644
--- a/tests/rustdoc-ui/no-run-flag.rs
+++ b/tests/rustdoc-ui/doctest/no-run-flag.rs
@@ -2,7 +2,7 @@
// check-pass
// compile-flags:-Z unstable-options --test --no-run --test-args=--test-threads=1
-// normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+// normalize-stdout-test: "tests/rustdoc-ui/doctest" -> "$$DIR"
// normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
/// ```
diff --git a/tests/rustdoc-ui/no-run-flag.stdout b/tests/rustdoc-ui/doctest/no-run-flag.stdout
index 02f28aaf6..02f28aaf6 100644
--- a/tests/rustdoc-ui/no-run-flag.stdout
+++ b/tests/rustdoc-ui/doctest/no-run-flag.stdout
diff --git a/tests/rustdoc-ui/nocapture-fail.rs b/tests/rustdoc-ui/doctest/nocapture-fail.rs
index 9a3fb592c..ce487a43d 100644
--- a/tests/rustdoc-ui/nocapture-fail.rs
+++ b/tests/rustdoc-ui/doctest/nocapture-fail.rs
@@ -1,7 +1,7 @@
// check-pass
// compile-flags:--test -Zunstable-options --nocapture
-// normalize-stderr-test: "tests/rustdoc-ui" -> "$$DIR"
-// normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+// normalize-stderr-test: "tests/rustdoc-ui/doctest" -> "$$DIR"
+// normalize-stdout-test: "tests/rustdoc-ui/doctest" -> "$$DIR"
// normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
/// ```compile_fail
diff --git a/tests/rustdoc-ui/nocapture-fail.stderr b/tests/rustdoc-ui/doctest/nocapture-fail.stderr
index b65b622c1..b65b622c1 100644
--- a/tests/rustdoc-ui/nocapture-fail.stderr
+++ b/tests/rustdoc-ui/doctest/nocapture-fail.stderr
diff --git a/tests/rustdoc-ui/nocapture-fail.stdout b/tests/rustdoc-ui/doctest/nocapture-fail.stdout
index 754f77db5..754f77db5 100644
--- a/tests/rustdoc-ui/nocapture-fail.stdout
+++ b/tests/rustdoc-ui/doctest/nocapture-fail.stdout
diff --git a/tests/rustdoc-ui/nocapture.rs b/tests/rustdoc-ui/doctest/nocapture.rs
index 3eb38f2fb..25fbcf857 100644
--- a/tests/rustdoc-ui/nocapture.rs
+++ b/tests/rustdoc-ui/doctest/nocapture.rs
@@ -1,6 +1,6 @@
// check-pass
// compile-flags:--test -Zunstable-options --nocapture
-// normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+// normalize-stdout-test: "tests/rustdoc-ui/doctest" -> "$$DIR"
// normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
/// ```
diff --git a/tests/rustdoc-ui/nocapture.stderr b/tests/rustdoc-ui/doctest/nocapture.stderr
index af6415db3..af6415db3 100644
--- a/tests/rustdoc-ui/nocapture.stderr
+++ b/tests/rustdoc-ui/doctest/nocapture.stderr
diff --git a/tests/rustdoc-ui/nocapture.stdout b/tests/rustdoc-ui/doctest/nocapture.stdout
index 4880e75da..4880e75da 100644
--- a/tests/rustdoc-ui/nocapture.stdout
+++ b/tests/rustdoc-ui/doctest/nocapture.stdout
diff --git a/tests/rustdoc-ui/private-doc-test.rs b/tests/rustdoc-ui/doctest/private-doc-test.rs
index a1f9f8dca..a1f9f8dca 100644
--- a/tests/rustdoc-ui/private-doc-test.rs
+++ b/tests/rustdoc-ui/doctest/private-doc-test.rs
diff --git a/tests/rustdoc-ui/private-item-doc-test.rs b/tests/rustdoc-ui/doctest/private-item-doc-test.rs
index 1a3d6cc63..1a3d6cc63 100644
--- a/tests/rustdoc-ui/private-item-doc-test.rs
+++ b/tests/rustdoc-ui/doctest/private-item-doc-test.rs
diff --git a/tests/rustdoc-ui/private-item-doc-test.stderr b/tests/rustdoc-ui/doctest/private-item-doc-test.stderr
index 5df613298..5df613298 100644
--- a/tests/rustdoc-ui/private-item-doc-test.stderr
+++ b/tests/rustdoc-ui/doctest/private-item-doc-test.stderr
diff --git a/tests/rustdoc-ui/private-public-item-doc-test.rs b/tests/rustdoc-ui/doctest/private-public-item-doc-test.rs
index 7cc62b38c..7cc62b38c 100644
--- a/tests/rustdoc-ui/private-public-item-doc-test.rs
+++ b/tests/rustdoc-ui/doctest/private-public-item-doc-test.rs
diff --git a/tests/rustdoc-ui/private-public-item-doc-test.stderr b/tests/rustdoc-ui/doctest/private-public-item-doc-test.stderr
index f50dbd184..f50dbd184 100644
--- a/tests/rustdoc-ui/private-public-item-doc-test.stderr
+++ b/tests/rustdoc-ui/doctest/private-public-item-doc-test.stderr
diff --git a/tests/rustdoc-ui/public-reexported-item-doc-test.rs b/tests/rustdoc-ui/doctest/public-reexported-item-doc-test.rs
index b86a53305..b86a53305 100644
--- a/tests/rustdoc-ui/public-reexported-item-doc-test.rs
+++ b/tests/rustdoc-ui/doctest/public-reexported-item-doc-test.rs
diff --git a/tests/rustdoc-ui/run-directory.correct.stdout b/tests/rustdoc-ui/doctest/run-directory.correct.stdout
index e9b275479..e9b275479 100644
--- a/tests/rustdoc-ui/run-directory.correct.stdout
+++ b/tests/rustdoc-ui/doctest/run-directory.correct.stdout
diff --git a/tests/rustdoc-ui/run-directory.incorrect.stdout b/tests/rustdoc-ui/doctest/run-directory.incorrect.stdout
index 97a5dbc5c..97a5dbc5c 100644
--- a/tests/rustdoc-ui/run-directory.incorrect.stdout
+++ b/tests/rustdoc-ui/doctest/run-directory.incorrect.stdout
diff --git a/tests/rustdoc-ui/run-directory.rs b/tests/rustdoc-ui/doctest/run-directory.rs
index b8d0647f0..1ff0af2d1 100644
--- a/tests/rustdoc-ui/run-directory.rs
+++ b/tests/rustdoc-ui/doctest/run-directory.rs
@@ -4,12 +4,12 @@
// check-pass
// [correct]compile-flags:--test --test-run-directory={{src-base}}
// [incorrect]compile-flags:--test --test-run-directory={{src-base}}/coverage
-// normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+// normalize-stdout-test: "tests/rustdoc-ui/doctest" -> "$$DIR"
// normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
/// ```
/// assert_eq!(
-/// std::fs::read_to_string("run-directory.rs").unwrap(),
+/// std::fs::read_to_string("doctest/run-directory.rs").unwrap(),
/// include_str!("run-directory.rs"),
/// );
/// ```
@@ -17,7 +17,7 @@
pub fn foo() {}
/// ```
-/// assert!(std::fs::read_to_string("run-directory.rs").is_err());
+/// assert!(std::fs::read_to_string("doctest/run-directory.rs").is_err());
/// ```
#[cfg(incorrect)]
pub fn foo() {}
diff --git a/tests/rustdoc-ui/test-compile-fail1.rs b/tests/rustdoc-ui/doctest/test-compile-fail1.rs
index a05390238..a05390238 100644
--- a/tests/rustdoc-ui/test-compile-fail1.rs
+++ b/tests/rustdoc-ui/doctest/test-compile-fail1.rs
diff --git a/tests/rustdoc-ui/test-compile-fail1.stderr b/tests/rustdoc-ui/doctest/test-compile-fail1.stderr
index 72915e46b..72915e46b 100644
--- a/tests/rustdoc-ui/test-compile-fail1.stderr
+++ b/tests/rustdoc-ui/doctest/test-compile-fail1.stderr
diff --git a/tests/rustdoc-ui/test-compile-fail2.rs b/tests/rustdoc-ui/doctest/test-compile-fail2.rs
index 651ded0a0..651ded0a0 100644
--- a/tests/rustdoc-ui/test-compile-fail2.rs
+++ b/tests/rustdoc-ui/doctest/test-compile-fail2.rs
diff --git a/tests/rustdoc-ui/test-compile-fail2.stderr b/tests/rustdoc-ui/doctest/test-compile-fail2.stderr
index cee5b63cf..cee5b63cf 100644
--- a/tests/rustdoc-ui/test-compile-fail2.stderr
+++ b/tests/rustdoc-ui/doctest/test-compile-fail2.stderr
diff --git a/tests/rustdoc-ui/test-compile-fail3.rs b/tests/rustdoc-ui/doctest/test-compile-fail3.rs
index faa30ad83..faa30ad83 100644
--- a/tests/rustdoc-ui/test-compile-fail3.rs
+++ b/tests/rustdoc-ui/doctest/test-compile-fail3.rs
diff --git a/tests/rustdoc-ui/test-compile-fail3.stderr b/tests/rustdoc-ui/doctest/test-compile-fail3.stderr
index fab801b3b..fab801b3b 100644
--- a/tests/rustdoc-ui/test-compile-fail3.stderr
+++ b/tests/rustdoc-ui/doctest/test-compile-fail3.stderr
diff --git a/tests/rustdoc-ui/test-no_std.rs b/tests/rustdoc-ui/doctest/test-no_std.rs
index 51abf1c72..fd651d1a3 100644
--- a/tests/rustdoc-ui/test-no_std.rs
+++ b/tests/rustdoc-ui/doctest/test-no_std.rs
@@ -1,5 +1,5 @@
// compile-flags:--test
-// normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+// normalize-stdout-test: "tests/rustdoc-ui/doctest" -> "$$DIR"
// normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
// check-pass
diff --git a/tests/rustdoc-ui/test-no_std.stdout b/tests/rustdoc-ui/doctest/test-no_std.stdout
index 8d5a30804..8d5a30804 100644
--- a/tests/rustdoc-ui/test-no_std.stdout
+++ b/tests/rustdoc-ui/doctest/test-no_std.stdout
diff --git a/tests/rustdoc-ui/test-type.rs b/tests/rustdoc-ui/doctest/test-type.rs
index 7f5a8f3fc..036d37f9d 100644
--- a/tests/rustdoc-ui/test-type.rs
+++ b/tests/rustdoc-ui/doctest/test-type.rs
@@ -1,6 +1,6 @@
// compile-flags: --test --test-args=--test-threads=1
// check-pass
-// normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+// normalize-stdout-test: "tests/rustdoc-ui/doctest" -> "$$DIR"
// normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
/// ```
diff --git a/tests/rustdoc-ui/test-type.stdout b/tests/rustdoc-ui/doctest/test-type.stdout
index a66fd240d..a66fd240d 100644
--- a/tests/rustdoc-ui/test-type.stdout
+++ b/tests/rustdoc-ui/doctest/test-type.stdout
diff --git a/tests/rustdoc-ui/unparseable-doc-test.rs b/tests/rustdoc-ui/doctest/unparseable-doc-test.rs
index f0a56a91b..fd8b2094d 100644
--- a/tests/rustdoc-ui/unparseable-doc-test.rs
+++ b/tests/rustdoc-ui/doctest/unparseable-doc-test.rs
@@ -1,5 +1,5 @@
// compile-flags: --test
-// normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+// normalize-stdout-test: "tests/rustdoc-ui/doctest" -> "$$DIR"
// normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
// failure-status: 101
// rustc-env: RUST_BACKTRACE=0
diff --git a/tests/rustdoc-ui/unparseable-doc-test.stdout b/tests/rustdoc-ui/doctest/unparseable-doc-test.stdout
index 2641c66f2..2641c66f2 100644
--- a/tests/rustdoc-ui/unparseable-doc-test.stdout
+++ b/tests/rustdoc-ui/doctest/unparseable-doc-test.stdout
diff --git a/tests/rustdoc-ui/error-in-impl-trait/infinite-recursive-type-2.rs b/tests/rustdoc-ui/error-in-impl-trait/infinite-recursive-type-2.rs
new file mode 100644
index 000000000..e49fe0798
--- /dev/null
+++ b/tests/rustdoc-ui/error-in-impl-trait/infinite-recursive-type-2.rs
@@ -0,0 +1,9 @@
+// check-pass
+
+pub fn f() -> impl Sized {
+ pub enum E {
+ V(E),
+ }
+
+ unimplemented!()
+}
diff --git a/tests/rustdoc-ui/infinite-recursive-type-impl-trait-return.rs b/tests/rustdoc-ui/error-in-impl-trait/infinite-recursive-type-impl-trait-return.rs
index 939da186f..939da186f 100644
--- a/tests/rustdoc-ui/infinite-recursive-type-impl-trait-return.rs
+++ b/tests/rustdoc-ui/error-in-impl-trait/infinite-recursive-type-impl-trait-return.rs
diff --git a/tests/rustdoc-ui/infinite-recursive-type-impl-trait-return.stderr b/tests/rustdoc-ui/error-in-impl-trait/infinite-recursive-type-impl-trait-return.stderr
index aff7402bc..aff7402bc 100644
--- a/tests/rustdoc-ui/infinite-recursive-type-impl-trait-return.stderr
+++ b/tests/rustdoc-ui/error-in-impl-trait/infinite-recursive-type-impl-trait-return.stderr
diff --git a/tests/rustdoc-ui/infinite-recursive-type-impl-trait.rs b/tests/rustdoc-ui/error-in-impl-trait/infinite-recursive-type.rs
index ac5172574..096130d77 100644
--- a/tests/rustdoc-ui/infinite-recursive-type-impl-trait.rs
+++ b/tests/rustdoc-ui/error-in-impl-trait/infinite-recursive-type.rs
@@ -1,6 +1,9 @@
+// check-pass
+
fn f() -> impl Sized {
- enum E { //~ ERROR
+ enum E {
V(E),
}
+
unimplemented!()
}
diff --git a/tests/rustdoc-ui/generate-link-to-definition-opt-unstable.rs b/tests/rustdoc-ui/generate-link-to-definition/generate-link-to-definition-opt-unstable.rs
index 87620d74e..87620d74e 100644
--- a/tests/rustdoc-ui/generate-link-to-definition-opt-unstable.rs
+++ b/tests/rustdoc-ui/generate-link-to-definition/generate-link-to-definition-opt-unstable.rs
diff --git a/tests/rustdoc-ui/generate-link-to-definition-opt-unstable.stderr b/tests/rustdoc-ui/generate-link-to-definition/generate-link-to-definition-opt-unstable.stderr
index a8ddf91bc..a8ddf91bc 100644
--- a/tests/rustdoc-ui/generate-link-to-definition-opt-unstable.stderr
+++ b/tests/rustdoc-ui/generate-link-to-definition/generate-link-to-definition-opt-unstable.stderr
diff --git a/tests/rustdoc-ui/generate-link-to-definition-opt.rs b/tests/rustdoc-ui/generate-link-to-definition/generate-link-to-definition-opt.rs
index 8f4f561b4..8f4f561b4 100644
--- a/tests/rustdoc-ui/generate-link-to-definition-opt.rs
+++ b/tests/rustdoc-ui/generate-link-to-definition/generate-link-to-definition-opt.rs
diff --git a/tests/rustdoc-ui/generate-link-to-definition-opt.stderr b/tests/rustdoc-ui/generate-link-to-definition/generate-link-to-definition-opt.stderr
index 4c8c607e7..4c8c607e7 100644
--- a/tests/rustdoc-ui/generate-link-to-definition-opt.stderr
+++ b/tests/rustdoc-ui/generate-link-to-definition/generate-link-to-definition-opt.stderr
diff --git a/tests/rustdoc-ui/generate-link-to-definition-opt2.rs b/tests/rustdoc-ui/generate-link-to-definition/generate-link-to-definition-opt2.rs
index da5142087..da5142087 100644
--- a/tests/rustdoc-ui/generate-link-to-definition-opt2.rs
+++ b/tests/rustdoc-ui/generate-link-to-definition/generate-link-to-definition-opt2.rs
diff --git a/tests/rustdoc-ui/generate-link-to-definition-opt2.stderr b/tests/rustdoc-ui/generate-link-to-definition/generate-link-to-definition-opt2.stderr
index 4c8c607e7..4c8c607e7 100644
--- a/tests/rustdoc-ui/generate-link-to-definition-opt2.stderr
+++ b/tests/rustdoc-ui/generate-link-to-definition/generate-link-to-definition-opt2.stderr
diff --git a/tests/rustdoc-ui/ice-bug-report-url.rs b/tests/rustdoc-ui/ice-bug-report-url.rs
new file mode 100644
index 000000000..8ede91cf8
--- /dev/null
+++ b/tests/rustdoc-ui/ice-bug-report-url.rs
@@ -0,0 +1,14 @@
+// compile-flags: -Ztreat-err-as-bug
+// failure-status: 101
+// error-pattern: aborting due to
+// error-pattern: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-rustdoc&template=ice.md
+
+// normalize-stderr-test "note: compiler flags.*\n\n" -> ""
+// normalize-stderr-test "note: rustc.*running on.*" -> "note: rustc {version} running on {platform}"
+// normalize-stderr-test "thread.*panicked at .*, compiler.*" -> "thread panicked at 'aborting due to `-Z treat-err-as-bug`'"
+// normalize-stderr-test " +\d{1,}: .*\n" -> ""
+// normalize-stderr-test " + at .*\n" -> ""
+// normalize-stderr-test ".*note: Some details are omitted.*\n" -> ""
+
+fn wrong()
+//~^ ERROR expected one of
diff --git a/tests/rustdoc-ui/ice-bug-report-url.stderr b/tests/rustdoc-ui/ice-bug-report-url.stderr
new file mode 100644
index 000000000..98c08b9a8
--- /dev/null
+++ b/tests/rustdoc-ui/ice-bug-report-url.stderr
@@ -0,0 +1,17 @@
+error: expected one of `->`, `where`, or `{`, found `<eof>`
+ --> $DIR/ice-bug-report-url.rs:13:10
+ |
+LL | fn wrong()
+ | ^ expected one of `->`, `where`, or `{`
+
+thread panicked at 'aborting due to `-Z treat-err-as-bug`'
+stack backtrace:
+
+error: the compiler unexpectedly panicked. this is a bug.
+
+note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-rustdoc&template=ice.md
+
+note: rustc {version} running on {platform}
+
+query stack during panic:
+end of query stack
diff --git a/tests/rustdoc-ui/infinite-recursive-type-impl-trait.stderr b/tests/rustdoc-ui/infinite-recursive-type-impl-trait.stderr
deleted file mode 100644
index a61577bd1..000000000
--- a/tests/rustdoc-ui/infinite-recursive-type-impl-trait.stderr
+++ /dev/null
@@ -1,16 +0,0 @@
-error[E0072]: recursive type `f::E` has infinite size
- --> $DIR/infinite-recursive-type-impl-trait.rs:2:5
- |
-LL | enum E {
- | ^^^^^^
-LL | V(E),
- | - recursive without indirection
- |
-help: insert some indirection (e.g., a `Box`, `Rc`, or `&`) to break the cycle
- |
-LL | V(Box<E>),
- | ++++ +
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0072`.
diff --git a/tests/rustdoc-ui/assoc-item-not-in-scope.rs b/tests/rustdoc-ui/intra-doc/assoc-item-not-in-scope.rs
index 0976515f4..0976515f4 100644
--- a/tests/rustdoc-ui/assoc-item-not-in-scope.rs
+++ b/tests/rustdoc-ui/intra-doc/assoc-item-not-in-scope.rs
diff --git a/tests/rustdoc-ui/assoc-item-not-in-scope.stderr b/tests/rustdoc-ui/intra-doc/assoc-item-not-in-scope.stderr
index 04594ad41..04594ad41 100644
--- a/tests/rustdoc-ui/assoc-item-not-in-scope.stderr
+++ b/tests/rustdoc-ui/intra-doc/assoc-item-not-in-scope.stderr
diff --git a/tests/rustdoc-ui/intra-doc/auxiliary/inner-crate-enum.rs b/tests/rustdoc-ui/intra-doc/auxiliary/inner-crate-enum.rs
deleted file mode 100644
index 6c48f5aa0..000000000
--- a/tests/rustdoc-ui/intra-doc/auxiliary/inner-crate-enum.rs
+++ /dev/null
@@ -1,3 +0,0 @@
-pub enum O {
- L = -1,
-}
diff --git a/tests/rustdoc-ui/deny-intra-link-resolution-failure.rs b/tests/rustdoc-ui/intra-doc/deny-intra-link-resolution-failure.rs
index 09da124b1..09da124b1 100644
--- a/tests/rustdoc-ui/deny-intra-link-resolution-failure.rs
+++ b/tests/rustdoc-ui/intra-doc/deny-intra-link-resolution-failure.rs
diff --git a/tests/rustdoc-ui/deny-intra-link-resolution-failure.stderr b/tests/rustdoc-ui/intra-doc/deny-intra-link-resolution-failure.stderr
index 3e08354a6..3e08354a6 100644
--- a/tests/rustdoc-ui/deny-intra-link-resolution-failure.stderr
+++ b/tests/rustdoc-ui/intra-doc/deny-intra-link-resolution-failure.stderr
diff --git a/tests/rustdoc-ui/intra-doc/inline-external-enum.rs b/tests/rustdoc-ui/intra-doc/inline-external-enum.rs
deleted file mode 100644
index 363dd7f64..000000000
--- a/tests/rustdoc-ui/intra-doc/inline-external-enum.rs
+++ /dev/null
@@ -1,8 +0,0 @@
-// check-pass
-// aux-build: inner-crate-enum.rs
-// compile-flags:-Z unstable-options --output-format json
-
-#[doc(inline)]
-pub extern crate inner_crate_enum;
-
-fn main() {}
diff --git a/tests/rustdoc-ui/intra-doc/issue-110495-suffix-with-space.rs b/tests/rustdoc-ui/intra-doc/issue-110495-suffix-with-space.rs
new file mode 100644
index 000000000..ef9c56f75
--- /dev/null
+++ b/tests/rustdoc-ui/intra-doc/issue-110495-suffix-with-space.rs
@@ -0,0 +1,6 @@
+// this test used to ICE
+#![deny(rustdoc::broken_intra_doc_links)]
+//! [Clone ()]. //~ ERROR unresolved
+//! [Clone !]. //~ ERROR incompatible
+//! [`Clone ()`]. //~ ERROR unresolved
+//! [`Clone !`]. //~ ERROR incompatible
diff --git a/tests/rustdoc-ui/intra-doc/issue-110495-suffix-with-space.stderr b/tests/rustdoc-ui/intra-doc/issue-110495-suffix-with-space.stderr
new file mode 100644
index 000000000..6c834fd0a
--- /dev/null
+++ b/tests/rustdoc-ui/intra-doc/issue-110495-suffix-with-space.stderr
@@ -0,0 +1,55 @@
+error: unresolved link to `Clone`
+ --> $DIR/issue-110495-suffix-with-space.rs:3:6
+ |
+LL | //! [Clone ()].
+ | ^^^^^^^^ this link resolves to the trait `Clone`, which is not in the value namespace
+ |
+note: the lint level is defined here
+ --> $DIR/issue-110495-suffix-with-space.rs:2:9
+ |
+LL | #![deny(rustdoc::broken_intra_doc_links)]
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+help: to link to the trait, prefix with `trait@`
+ |
+LL - //! [Clone ()].
+LL + //! [trait@Clone ].
+ |
+
+error: incompatible link kind for `Clone`
+ --> $DIR/issue-110495-suffix-with-space.rs:4:6
+ |
+LL | //! [Clone !].
+ | ^^^^^^^ this link resolved to a derive macro, which is not a macro
+ |
+help: to link to the derive macro, prefix with `derive@`
+ |
+LL - //! [Clone !].
+LL + //! [derive@Clone ].
+ |
+
+error: unresolved link to `Clone`
+ --> $DIR/issue-110495-suffix-with-space.rs:5:7
+ |
+LL | //! [`Clone ()`].
+ | ^^^^^^^^ this link resolves to the trait `Clone`, which is not in the value namespace
+ |
+help: to link to the trait, prefix with `trait@`
+ |
+LL - //! [`Clone ()`].
+LL + //! [`trait@Clone `].
+ |
+
+error: incompatible link kind for `Clone`
+ --> $DIR/issue-110495-suffix-with-space.rs:6:7
+ |
+LL | //! [`Clone !`].
+ | ^^^^^^^ this link resolved to a derive macro, which is not a macro
+ |
+help: to link to the derive macro, prefix with `derive@`
+ |
+LL - //! [`Clone !`].
+LL + //! [`derive@Clone `].
+ |
+
+error: aborting due to 4 previous errors
+
diff --git a/tests/rustdoc-ui/intra-doc/issue-111189-resolution-ice.rs b/tests/rustdoc-ui/intra-doc/issue-111189-resolution-ice.rs
new file mode 100644
index 000000000..4e74278dc
--- /dev/null
+++ b/tests/rustdoc-ui/intra-doc/issue-111189-resolution-ice.rs
@@ -0,0 +1,10 @@
+// Regression test for <https://github.com/rust-lang/rust/issues/111189>.
+// This test ensures that it doesn't crash.
+
+#![deny(warnings)]
+
+/// #[rustfmt::skip]
+//~^ ERROR unresolved link to `rustfmt::skip`
+/// #[clippy::whatever]
+//~^ ERROR unresolved link to `clippy::whatever`
+pub fn foo() {}
diff --git a/tests/rustdoc-ui/intra-doc/issue-111189-resolution-ice.stderr b/tests/rustdoc-ui/intra-doc/issue-111189-resolution-ice.stderr
new file mode 100644
index 000000000..edd3dfa7d
--- /dev/null
+++ b/tests/rustdoc-ui/intra-doc/issue-111189-resolution-ice.stderr
@@ -0,0 +1,21 @@
+error: unresolved link to `rustfmt::skip`
+ --> $DIR/issue-111189-resolution-ice.rs:6:7
+ |
+LL | /// #[rustfmt::skip]
+ | ^^^^^^^^^^^^^ no item named `rustfmt` in scope
+ |
+note: the lint level is defined here
+ --> $DIR/issue-111189-resolution-ice.rs:4:9
+ |
+LL | #![deny(warnings)]
+ | ^^^^^^^^
+ = note: `#[deny(rustdoc::broken_intra_doc_links)]` implied by `#[deny(warnings)]`
+
+error: unresolved link to `clippy::whatever`
+ --> $DIR/issue-111189-resolution-ice.rs:8:7
+ |
+LL | /// #[clippy::whatever]
+ | ^^^^^^^^^^^^^^^^ no item named `clippy` in scope
+
+error: aborting due to 2 previous errors
+
diff --git a/tests/rustdoc-ui/pub-export-lint.rs b/tests/rustdoc-ui/intra-doc/pub-export-lint.rs
index f2e66b77b..f2e66b77b 100644
--- a/tests/rustdoc-ui/pub-export-lint.rs
+++ b/tests/rustdoc-ui/intra-doc/pub-export-lint.rs
diff --git a/tests/rustdoc-ui/pub-export-lint.stderr b/tests/rustdoc-ui/intra-doc/pub-export-lint.stderr
index 81ef79961..81ef79961 100644
--- a/tests/rustdoc-ui/pub-export-lint.stderr
+++ b/tests/rustdoc-ui/intra-doc/pub-export-lint.stderr
diff --git a/tests/rustdoc-ui/reference-link-reports-error-once.rs b/tests/rustdoc-ui/intra-doc/reference-link-reports-error-once.rs
index 71bd2c522..71bd2c522 100644
--- a/tests/rustdoc-ui/reference-link-reports-error-once.rs
+++ b/tests/rustdoc-ui/intra-doc/reference-link-reports-error-once.rs
diff --git a/tests/rustdoc-ui/reference-link-reports-error-once.stderr b/tests/rustdoc-ui/intra-doc/reference-link-reports-error-once.stderr
index 2ab67090f..2ab67090f 100644
--- a/tests/rustdoc-ui/reference-link-reports-error-once.stderr
+++ b/tests/rustdoc-ui/intra-doc/reference-link-reports-error-once.stderr
diff --git a/tests/rustdoc-ui/reference-links.rs b/tests/rustdoc-ui/intra-doc/reference-links.rs
index e81e03446..e81e03446 100644
--- a/tests/rustdoc-ui/reference-links.rs
+++ b/tests/rustdoc-ui/intra-doc/reference-links.rs
diff --git a/tests/rustdoc-ui/reference-links.stderr b/tests/rustdoc-ui/intra-doc/reference-links.stderr
index c98a2fd7c..c98a2fd7c 100644
--- a/tests/rustdoc-ui/reference-links.stderr
+++ b/tests/rustdoc-ui/intra-doc/reference-links.stderr
diff --git a/tests/rustdoc-ui/intra-doc/weird-syntax.rs b/tests/rustdoc-ui/intra-doc/weird-syntax.rs
new file mode 100644
index 000000000..ca18842fb
--- /dev/null
+++ b/tests/rustdoc-ui/intra-doc/weird-syntax.rs
@@ -0,0 +1,140 @@
+// Many examples are from
+// https://github.com/rust-lang/rust/issues/110111#issuecomment-1517800781
+#![deny(rustdoc::broken_intra_doc_links)]
+
+//! This test case is closely linked to [raphlinus/pulldown-cmark#441], getting offsets of
+//! link components. In particular, pulldown-cmark doesn't provide the offsets of the contents
+//! of a link.
+//!
+//! To work around this, rustdoc parses parts of a link definition itself. This is basically a
+//! test suite for that link syntax parser.
+//!
+//! [raphlinus/pulldown-cmark#441]: https://github.com/raphlinus/pulldown-cmark/issues/441
+
+use std::clone::Clone;
+
+// Basic version //
+
+/// [`struct@Clone`] //~ERROR link
+pub struct LinkToCloneWithBackquotes;
+
+/// [```struct@Clone```] //~ERROR link
+pub struct LinkToCloneWithMultipleBackquotes;
+
+/// [ ` struct@Clone ` ] //~ERROR link
+pub struct LinkToCloneWithSpacesAndBackquotes;
+
+/// [ `Clone ()` ] //~ERROR link
+pub struct LinkToCloneWithSpacesBackquotesAndParens;
+
+/// [`Clone ()` ] //~ERROR link
+pub struct LinkToCloneWithSpacesEndBackquotesAndParens;
+
+/// [ `Clone ()`] //~ERROR link
+pub struct LinkToCloneWithSpacesStartBackquotesAndParens;
+
+/// [```Clone ()```] //~ERROR link
+pub struct LinkToCloneWithMultipleBackquotesAndParens;
+
+/// [```Clone \(\)```] // not URL-shaped enough
+pub struct LinkToCloneWithMultipleBackquotesAndEscapedParens;
+
+/// [ ``` Clone () ``` ] //~ERROR link
+pub struct LinkToCloneWithSpacesMultipleBackquotesAndParens;
+
+/// [ x \] ] // not URL-shaped enough
+pub struct LinkWithEscapedCloseBrace;
+
+/// [ x \[ ] // not URL-shaped enough
+pub struct LinkWithEscapedOpenBrace;
+
+/// [ x \( ] // not URL-shaped enough
+pub struct LinkWithEscapedCloseParen;
+
+/// [ x \) ] // not URL-shaped enough
+pub struct LinkWithEscapedOpenParen;
+
+/// [ Clone \(\) ] // not URL-shaped enough
+pub struct LinkWithEscapedParens;
+
+// [][] version //
+
+/// [x][ struct@Clone] //~ERROR link
+pub struct XLinkToCloneWithStartSpace;
+
+/// [x][struct@Clone ] //~ERROR link
+pub struct XLinkToCloneWithEndSpace;
+
+/// [x][Clone\(\)] not URL-shaped enough
+pub struct XLinkToCloneWithEscapedParens;
+
+/// [x][`Clone`] not URL-shaped enough
+pub struct XLinkToCloneWithBackquotes;
+
+/// [x][Clone()] //~ERROR link
+pub struct XLinkToCloneWithUnescapedParens;
+
+/// [x][Clone ()] //~ERROR link
+pub struct XLinkToCloneWithUnescapedParensAndDoubleSpace;
+
+/// [x][Clone [] //~ERROR unresolved link to `x`
+pub struct XLinkToCloneWithUnmatchedOpenParenAndDoubleSpace;
+
+/// [x][Clone \[] // not URL-shaped enough
+pub struct XLinkToCloneWithUnmatchedEscapedOpenParenAndDoubleSpace;
+
+/// [x][Clone \]] // not URL-shaped enough
+pub struct XLinkToCloneWithUnmatchedEscapedCloseParenAndDoubleSpace;
+
+// []() version //
+
+/// [w]( struct@Clone) //~ERROR link
+pub struct WLinkToCloneWithStartSpace;
+
+/// [w](struct@Clone ) //~ERROR link
+pub struct WLinkToCloneWithEndSpace;
+
+/// [w](Clone\(\)) //~ERROR link
+pub struct WLinkToCloneWithEscapedParens;
+
+/// [w](`Clone`) not URL-shaped enough
+pub struct WLinkToCloneWithBackquotes;
+
+/// [w](Clone()) //~ERROR link
+pub struct WLinkToCloneWithUnescapedParens;
+
+/// [w](Clone ()) not URL-shaped enough
+pub struct WLinkToCloneWithUnescapedParensAndDoubleSpace;
+
+/// [w](Clone () //~ERROR unresolved link to `w`
+pub struct WLinkToCloneWithUnmatchedOpenParenAndDoubleSpace;
+
+/// [w](Clone \() //~ERROR unresolved link to `w`
+pub struct WLinkToCloneWithUnmatchedEscapedOpenParenAndDoubleSpace;
+
+/// [w](Clone \)) //~ERROR unresolved link to `w`
+pub struct WLinkToCloneWithUnmatchedEscapedCloseParenAndDoubleSpace;
+
+// References
+
+/// The [cln][] link here is going to be unresolved, because `Clone()` gets rejected //~ERROR link
+/// in Markdown for not being URL-shaped enough.
+///
+/// [cln]: Clone() //~ERROR link
+pub struct LinkToCloneWithParensInReference;
+
+/// The [cln][] link here is going to be unresolved, because `struct@Clone` gets //~ERROR link
+/// rejected in Markdown for not being URL-shaped enough.
+///
+/// [cln]: struct@Clone //~ERROR link
+pub struct LinkToCloneWithWrongPrefix;
+
+/// The [cln][] link here will produce a plain text suggestion //~ERROR link
+///
+/// [cln]: Clone\(\)
+pub struct LinkToCloneWithEscapedParensInReference;
+
+/// The [cln][] link here will produce a plain text suggestion //~ERROR link
+///
+/// [cln]: struct\@Clone
+pub struct LinkToCloneWithEscapedAtsInReference;
diff --git a/tests/rustdoc-ui/intra-doc/weird-syntax.stderr b/tests/rustdoc-ui/intra-doc/weird-syntax.stderr
new file mode 100644
index 000000000..f50feb57f
--- /dev/null
+++ b/tests/rustdoc-ui/intra-doc/weird-syntax.stderr
@@ -0,0 +1,272 @@
+error: incompatible link kind for `Clone`
+ --> $DIR/weird-syntax.rs:18:7
+ |
+LL | /// [`struct@Clone`]
+ | ^^^^^^^^^^^^ this link resolved to a trait, which is not a struct
+ |
+note: the lint level is defined here
+ --> $DIR/weird-syntax.rs:3:9
+ |
+LL | #![deny(rustdoc::broken_intra_doc_links)]
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+help: to link to the trait, prefix with `trait@`
+ |
+LL | /// [`trait@Clone`]
+ | ~~~~~~
+
+error: incompatible link kind for `Clone`
+ --> $DIR/weird-syntax.rs:21:9
+ |
+LL | /// [```struct@Clone```]
+ | ^^^^^^^^^^^^ this link resolved to a trait, which is not a struct
+ |
+help: to link to the trait, prefix with `trait@`
+ |
+LL | /// [```trait@Clone```]
+ | ~~~~~~
+
+error: incompatible link kind for `Clone`
+ --> $DIR/weird-syntax.rs:24:11
+ |
+LL | /// [ ` struct@Clone ` ]
+ | ^^^^^^^^^^^^ this link resolved to a trait, which is not a struct
+ |
+help: to link to the trait, prefix with `trait@`
+ |
+LL | /// [ ` trait@Clone ` ]
+ | ~~~~~~
+
+error: unresolved link to `Clone`
+ --> $DIR/weird-syntax.rs:27:9
+ |
+LL | /// [ `Clone ()` ]
+ | ^^^^^^^^ this link resolves to the trait `Clone`, which is not in the value namespace
+ |
+help: to link to the trait, prefix with `trait@`
+ |
+LL - /// [ `Clone ()` ]
+LL + /// [ `trait@Clone ` ]
+ |
+
+error: unresolved link to `Clone`
+ --> $DIR/weird-syntax.rs:30:7
+ |
+LL | /// [`Clone ()` ]
+ | ^^^^^^^^ this link resolves to the trait `Clone`, which is not in the value namespace
+ |
+help: to link to the trait, prefix with `trait@`
+ |
+LL - /// [`Clone ()` ]
+LL + /// [`trait@Clone ` ]
+ |
+
+error: unresolved link to `Clone`
+ --> $DIR/weird-syntax.rs:33:9
+ |
+LL | /// [ `Clone ()`]
+ | ^^^^^^^^ this link resolves to the trait `Clone`, which is not in the value namespace
+ |
+help: to link to the trait, prefix with `trait@`
+ |
+LL - /// [ `Clone ()`]
+LL + /// [ `trait@Clone `]
+ |
+
+error: unresolved link to `Clone`
+ --> $DIR/weird-syntax.rs:36:9
+ |
+LL | /// [```Clone ()```]
+ | ^^^^^^^^ this link resolves to the trait `Clone`, which is not in the value namespace
+ |
+help: to link to the trait, prefix with `trait@`
+ |
+LL - /// [```Clone ()```]
+LL + /// [```trait@Clone ```]
+ |
+
+error: unresolved link to `Clone`
+ --> $DIR/weird-syntax.rs:42:13
+ |
+LL | /// [ ``` Clone () ``` ]
+ | ^^^^^^^^ this link resolves to the trait `Clone`, which is not in the value namespace
+ |
+help: to link to the trait, prefix with `trait@`
+ |
+LL - /// [ ``` Clone () ``` ]
+LL + /// [ ``` trait@Clone ``` ]
+ |
+
+error: incompatible link kind for `Clone`
+ --> $DIR/weird-syntax.rs:62:10
+ |
+LL | /// [x][ struct@Clone]
+ | ^^^^^^^^^^^^ this link resolved to a trait, which is not a struct
+ |
+help: to link to the trait, prefix with `trait@`
+ |
+LL | /// [x][ trait@Clone]
+ | ~~~~~~
+
+error: incompatible link kind for `Clone`
+ --> $DIR/weird-syntax.rs:65:9
+ |
+LL | /// [x][struct@Clone ]
+ | ^^^^^^^^^^^^ this link resolved to a trait, which is not a struct
+ |
+help: to link to the trait, prefix with `trait@`
+ |
+LL | /// [x][trait@Clone ]
+ | ~~~~~~
+
+error: unresolved link to `Clone`
+ --> $DIR/weird-syntax.rs:74:9
+ |
+LL | /// [x][Clone()]
+ | ^^^^^^^ this link resolves to the trait `Clone`, which is not in the value namespace
+ |
+help: to link to the trait, prefix with `trait@`
+ |
+LL - /// [x][Clone()]
+LL + /// [x][trait@Clone]
+ |
+
+error: unresolved link to `Clone`
+ --> $DIR/weird-syntax.rs:77:9
+ |
+LL | /// [x][Clone ()]
+ | ^^^^^^^^^ this link resolves to the trait `Clone`, which is not in the value namespace
+ |
+help: to link to the trait, prefix with `trait@`
+ |
+LL - /// [x][Clone ()]
+LL + /// [x][trait@Clone ]
+ |
+
+error: unresolved link to `x`
+ --> $DIR/weird-syntax.rs:80:6
+ |
+LL | /// [x][Clone []
+ | ^ no item named `x` in scope
+ |
+ = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
+
+error: incompatible link kind for `Clone`
+ --> $DIR/weird-syntax.rs:91:10
+ |
+LL | /// [w]( struct@Clone)
+ | ^^^^^^^^^^^^ this link resolved to a trait, which is not a struct
+ |
+help: to link to the trait, prefix with `trait@`
+ |
+LL | /// [w]( trait@Clone)
+ | ~~~~~~
+
+error: incompatible link kind for `Clone`
+ --> $DIR/weird-syntax.rs:94:9
+ |
+LL | /// [w](struct@Clone )
+ | ^^^^^^^^^^^^ this link resolved to a trait, which is not a struct
+ |
+help: to link to the trait, prefix with `trait@`
+ |
+LL | /// [w](trait@Clone )
+ | ~~~~~~
+
+error: unresolved link to `Clone`
+ --> $DIR/weird-syntax.rs:97:9
+ |
+LL | /// [w](Clone\(\))
+ | ^^^^^^^^^ this link resolves to the trait `Clone`, which is not in the value namespace
+ |
+help: to link to the trait, prefix with `trait@`
+ |
+LL - /// [w](Clone\(\))
+LL + /// [w](trait@Clone)
+ |
+
+error: unresolved link to `Clone`
+ --> $DIR/weird-syntax.rs:103:9
+ |
+LL | /// [w](Clone())
+ | ^^^^^^^ this link resolves to the trait `Clone`, which is not in the value namespace
+ |
+help: to link to the trait, prefix with `trait@`
+ |
+LL - /// [w](Clone())
+LL + /// [w](trait@Clone)
+ |
+
+error: unresolved link to `w`
+ --> $DIR/weird-syntax.rs:109:6
+ |
+LL | /// [w](Clone ()
+ | ^ no item named `w` in scope
+ |
+ = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
+
+error: unresolved link to `w`
+ --> $DIR/weird-syntax.rs:112:6
+ |
+LL | /// [w](Clone \()
+ | ^ no item named `w` in scope
+ |
+ = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
+
+error: unresolved link to `w`
+ --> $DIR/weird-syntax.rs:115:6
+ |
+LL | /// [w](Clone \))
+ | ^ no item named `w` in scope
+ |
+ = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
+
+error: unresolved link to `cln`
+ --> $DIR/weird-syntax.rs:120:10
+ |
+LL | /// The [cln][] link here is going to be unresolved, because `Clone()` gets rejected
+ | ^^^ no item named `cln` in scope
+ |
+ = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
+
+error: unresolved link to `cln`
+ --> $DIR/weird-syntax.rs:123:6
+ |
+LL | /// [cln]: Clone()
+ | ^^^ no item named `cln` in scope
+ |
+ = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
+
+error: unresolved link to `cln`
+ --> $DIR/weird-syntax.rs:126:10
+ |
+LL | /// The [cln][] link here is going to be unresolved, because `struct@Clone` gets
+ | ^^^ no item named `cln` in scope
+ |
+ = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
+
+error: unresolved link to `cln`
+ --> $DIR/weird-syntax.rs:129:6
+ |
+LL | /// [cln]: struct@Clone
+ | ^^^ no item named `cln` in scope
+ |
+ = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
+
+error: unresolved link to `Clone`
+ --> $DIR/weird-syntax.rs:132:9
+ |
+LL | /// The [cln][] link here will produce a plain text suggestion
+ | ^^^^^ this link resolves to the trait `Clone`, which is not in the value namespace
+ |
+ = help: to link to the trait, prefix with `trait@`: trait@Clone
+
+error: incompatible link kind for `Clone`
+ --> $DIR/weird-syntax.rs:137:9
+ |
+LL | /// The [cln][] link here will produce a plain text suggestion
+ | ^^^^^ this link resolved to a trait, which is not a struct
+ |
+ = help: to link to the trait, prefix with `trait@`: trait@Clone
+
+error: aborting due to 26 previous errors
+
diff --git a/tests/rustdoc-ui/issue-110629-private-type-cycle-dyn.rs b/tests/rustdoc-ui/issue-110629-private-type-cycle-dyn.rs
new file mode 100644
index 000000000..c920a815f
--- /dev/null
+++ b/tests/rustdoc-ui/issue-110629-private-type-cycle-dyn.rs
@@ -0,0 +1,12 @@
+type Bar<'a, 'b> = Box<dyn PartialEq<Bar<'a, 'b>>>;
+//~^ ERROR cycle detected when expanding type alias
+
+fn bar<'a, 'b>(i: &'a i32) -> Bar<'a, 'b> {
+ Box::new(i)
+}
+
+fn main() {
+ let meh = 42;
+ let muh = 42;
+ assert!(bar(&meh) == bar(&muh));
+}
diff --git a/tests/rustdoc-ui/issue-110629-private-type-cycle-dyn.stderr b/tests/rustdoc-ui/issue-110629-private-type-cycle-dyn.stderr
new file mode 100644
index 000000000..79e1b7531
--- /dev/null
+++ b/tests/rustdoc-ui/issue-110629-private-type-cycle-dyn.stderr
@@ -0,0 +1,25 @@
+error[E0391]: cycle detected when expanding type alias `Bar`
+ --> $DIR/issue-110629-private-type-cycle-dyn.rs:1:38
+ |
+LL | type Bar<'a, 'b> = Box<dyn PartialEq<Bar<'a, 'b>>>;
+ | ^^^^^^^^^^^
+ |
+ = note: ...which immediately requires expanding type alias `Bar` again
+ = note: type aliases cannot be recursive
+ = help: consider using a struct, enum, or union instead to break the cycle
+ = help: see <https://doc.rust-lang.org/reference/types.html#recursive-types> for more information
+note: cycle used when collecting item types in top-level module
+ --> $DIR/issue-110629-private-type-cycle-dyn.rs:1:1
+ |
+LL | / type Bar<'a, 'b> = Box<dyn PartialEq<Bar<'a, 'b>>>;
+LL | |
+LL | |
+LL | | fn bar<'a, 'b>(i: &'a i32) -> Bar<'a, 'b> {
+... |
+LL | | assert!(bar(&meh) == bar(&muh));
+LL | | }
+ | |_^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0391`.
diff --git a/tests/rustdoc-ui/issue-110629-private-type-cycle.rs b/tests/rustdoc-ui/issue-110629-private-type-cycle.rs
new file mode 100644
index 000000000..2d46ddbfa
--- /dev/null
+++ b/tests/rustdoc-ui/issue-110629-private-type-cycle.rs
@@ -0,0 +1,15 @@
+// check-pass
+
+#![feature(type_alias_impl_trait)]
+
+type Bar<'a, 'b> = impl PartialEq<Bar<'a, 'b>> + std::fmt::Debug;
+
+fn bar<'a, 'b>(i: &'a i32) -> Bar<'a, 'b> {
+ i
+}
+
+fn main() {
+ let meh = 42;
+ let muh = 42;
+ assert_eq!(bar(&meh), bar(&muh));
+}
diff --git a/tests/rustdoc-ui/auxiliary/empty-fn.rs b/tests/rustdoc-ui/issues/auxiliary/empty-fn.rs
index 877810f15..877810f15 100644
--- a/tests/rustdoc-ui/auxiliary/empty-fn.rs
+++ b/tests/rustdoc-ui/issues/auxiliary/empty-fn.rs
diff --git a/tests/rustdoc-ui/auxiliary/issue-61592.rs b/tests/rustdoc-ui/issues/auxiliary/issue-61592.rs
index 57a365b3f..57a365b3f 100644
--- a/tests/rustdoc-ui/auxiliary/issue-61592.rs
+++ b/tests/rustdoc-ui/issues/auxiliary/issue-61592.rs
diff --git a/tests/rustdoc-ui/auxiliary/panic-handler.rs b/tests/rustdoc-ui/issues/auxiliary/panic-handler.rs
index 0aaaeee10..0aaaeee10 100644
--- a/tests/rustdoc-ui/auxiliary/panic-handler.rs
+++ b/tests/rustdoc-ui/issues/auxiliary/panic-handler.rs
diff --git a/tests/rustdoc-ui/issue-101076.rs b/tests/rustdoc-ui/issues/issue-101076.rs
index 648f99029..648f99029 100644
--- a/tests/rustdoc-ui/issue-101076.rs
+++ b/tests/rustdoc-ui/issues/issue-101076.rs
diff --git a/tests/rustdoc-ui/issue-102986.rs b/tests/rustdoc-ui/issues/issue-102986.rs
index 001784ac2..001784ac2 100644
--- a/tests/rustdoc-ui/issue-102986.rs
+++ b/tests/rustdoc-ui/issues/issue-102986.rs
diff --git a/tests/rustdoc-ui/issue-102986.stderr b/tests/rustdoc-ui/issues/issue-102986.stderr
index 3a573726c..3a573726c 100644
--- a/tests/rustdoc-ui/issue-102986.stderr
+++ b/tests/rustdoc-ui/issues/issue-102986.stderr
diff --git a/tests/rustdoc-ui/issue-103997.rs b/tests/rustdoc-ui/issues/issue-103997.rs
index 36f42fb15..36f42fb15 100644
--- a/tests/rustdoc-ui/issue-103997.rs
+++ b/tests/rustdoc-ui/issues/issue-103997.rs
diff --git a/tests/rustdoc-ui/issue-103997.stderr b/tests/rustdoc-ui/issues/issue-103997.stderr
index c06db9149..c06db9149 100644
--- a/tests/rustdoc-ui/issue-103997.stderr
+++ b/tests/rustdoc-ui/issues/issue-103997.stderr
diff --git a/tests/rustdoc-ui/issue-105334.rs b/tests/rustdoc-ui/issues/issue-105334.rs
index ee1adc6a0..ee1adc6a0 100644
--- a/tests/rustdoc-ui/issue-105334.rs
+++ b/tests/rustdoc-ui/issues/issue-105334.rs
diff --git a/tests/rustdoc-ui/issue-105334.stderr b/tests/rustdoc-ui/issues/issue-105334.stderr
index e163bb4db..e163bb4db 100644
--- a/tests/rustdoc-ui/issue-105334.stderr
+++ b/tests/rustdoc-ui/issues/issue-105334.stderr
diff --git a/tests/rustdoc-ui/issue-105737.rs b/tests/rustdoc-ui/issues/issue-105737.rs
index 154f069d8..154f069d8 100644
--- a/tests/rustdoc-ui/issue-105737.rs
+++ b/tests/rustdoc-ui/issues/issue-105737.rs
diff --git a/tests/rustdoc-ui/issue-105737.stderr b/tests/rustdoc-ui/issues/issue-105737.stderr
index 2dd9beb17..2dd9beb17 100644
--- a/tests/rustdoc-ui/issue-105737.stderr
+++ b/tests/rustdoc-ui/issues/issue-105737.stderr
diff --git a/tests/rustdoc-ui/issue-105742.rs b/tests/rustdoc-ui/issues/issue-105742.rs
index 8f4172c0c..1fbb70c78 100644
--- a/tests/rustdoc-ui/issue-105742.rs
+++ b/tests/rustdoc-ui/issues/issue-105742.rs
@@ -19,6 +19,8 @@ pub trait SVec: Index<
//~| missing generics for associated type `SVec::Item`
//~| missing generics for associated type `SVec::Item`
//~| missing generics for associated type `SVec::Item`
+ //~| missing generics for associated type `SVec::Item`
+ //~| missing generics for associated type `SVec::Item`
Output = <Index<<Self as SVec>::Item,
//~^ expected 1 lifetime argument
//~| expected 1 generic argument
@@ -26,6 +28,8 @@ pub trait SVec: Index<
//~| missing generics for associated type `SVec::Item`
//~| missing generics for associated type `SVec::Item`
//~| missing generics for associated type `SVec::Item`
+ //~| missing generics for associated type `SVec::Item`
+ //~| missing generics for associated type `SVec::Item`
Output = <Self as SVec>::Item> as SVec>::Item,
//~^ expected 1 lifetime argument
//~| expected 1 generic argument
@@ -34,11 +38,15 @@ pub trait SVec: Index<
//~| missing generics for associated type `SVec::Item`
//~| missing generics for associated type `SVec::Item`
//~| missing generics for associated type `SVec::Item`
+ //~| missing generics for associated type `SVec::Item`
+ //~| missing generics for associated type `SVec::Item`
//~| expected 1 generic argument
//~| missing generics for associated type `SVec::Item`
//~| missing generics for associated type `SVec::Item`
//~| missing generics for associated type `SVec::Item`
//~| missing generics for associated type `SVec::Item`
+ //~| missing generics for associated type `SVec::Item`
+ //~| missing generics for associated type `SVec::Item`
> {
type Item<'a, T>;
diff --git a/tests/rustdoc-ui/issue-105742.stderr b/tests/rustdoc-ui/issues/issue-105742.stderr
index cd53762ef..b63176c91 100644
--- a/tests/rustdoc-ui/issue-105742.stderr
+++ b/tests/rustdoc-ui/issues/issue-105742.stderr
@@ -5,7 +5,7 @@ LL | <Self as SVec>::Item,
| ^^^^ expected 1 lifetime argument
|
note: associated type defined here, with 1 lifetime parameter: `'a`
- --> $DIR/issue-105742.rs:43:10
+ --> $DIR/issue-105742.rs:51:10
|
LL | type Item<'a, T>;
| ^^^^ --
@@ -21,7 +21,7 @@ LL | <Self as SVec>::Item,
| ^^^^ expected 1 generic argument
|
note: associated type defined here, with 1 generic parameter: `T`
- --> $DIR/issue-105742.rs:43:10
+ --> $DIR/issue-105742.rs:51:10
|
LL | type Item<'a, T>;
| ^^^^ -
@@ -31,13 +31,13 @@ LL | <Self as SVec>::Item<T>,
| +++
error[E0107]: missing generics for associated type `SVec::Item`
- --> $DIR/issue-105742.rs:22:37
+ --> $DIR/issue-105742.rs:24:37
|
LL | Output = <Index<<Self as SVec>::Item,
| ^^^^ expected 1 lifetime argument
|
note: associated type defined here, with 1 lifetime parameter: `'a`
- --> $DIR/issue-105742.rs:43:10
+ --> $DIR/issue-105742.rs:51:10
|
LL | type Item<'a, T>;
| ^^^^ --
@@ -47,13 +47,13 @@ LL | Output = <Index<<Self as SVec>::Item<'a>,
| ++++
error[E0107]: missing generics for associated type `SVec::Item`
- --> $DIR/issue-105742.rs:22:37
+ --> $DIR/issue-105742.rs:24:37
|
LL | Output = <Index<<Self as SVec>::Item,
| ^^^^ expected 1 generic argument
|
note: associated type defined here, with 1 generic parameter: `T`
- --> $DIR/issue-105742.rs:43:10
+ --> $DIR/issue-105742.rs:51:10
|
LL | type Item<'a, T>;
| ^^^^ -
@@ -63,13 +63,13 @@ LL | Output = <Index<<Self as SVec>::Item<T>,
| +++
error[E0107]: missing generics for associated type `SVec::Item`
- --> $DIR/issue-105742.rs:29:30
+ --> $DIR/issue-105742.rs:33:30
|
LL | Output = <Self as SVec>::Item> as SVec>::Item,
| ^^^^ expected 1 lifetime argument
|
note: associated type defined here, with 1 lifetime parameter: `'a`
- --> $DIR/issue-105742.rs:43:10
+ --> $DIR/issue-105742.rs:51:10
|
LL | type Item<'a, T>;
| ^^^^ --
@@ -79,13 +79,13 @@ LL | Output = <Self as SVec>::Item<'a>> as SVec>::Item,
| ++++
error[E0107]: missing generics for associated type `SVec::Item`
- --> $DIR/issue-105742.rs:29:30
+ --> $DIR/issue-105742.rs:33:30
|
LL | Output = <Self as SVec>::Item> as SVec>::Item,
| ^^^^ expected 1 generic argument
|
note: associated type defined here, with 1 generic parameter: `T`
- --> $DIR/issue-105742.rs:43:10
+ --> $DIR/issue-105742.rs:51:10
|
LL | type Item<'a, T>;
| ^^^^ -
@@ -95,13 +95,13 @@ LL | Output = <Self as SVec>::Item<T>> as SVec>::Item,
| +++
error[E0107]: missing generics for associated type `SVec::Item`
- --> $DIR/issue-105742.rs:29:46
+ --> $DIR/issue-105742.rs:33:46
|
LL | Output = <Self as SVec>::Item> as SVec>::Item,
| ^^^^ expected 1 lifetime argument
|
note: associated type defined here, with 1 lifetime parameter: `'a`
- --> $DIR/issue-105742.rs:43:10
+ --> $DIR/issue-105742.rs:51:10
|
LL | type Item<'a, T>;
| ^^^^ --
@@ -111,13 +111,13 @@ LL | Output = <Self as SVec>::Item> as SVec>::Item<'a>,
| ++++
error[E0107]: missing generics for associated type `SVec::Item`
- --> $DIR/issue-105742.rs:29:46
+ --> $DIR/issue-105742.rs:33:46
|
LL | Output = <Self as SVec>::Item> as SVec>::Item,
| ^^^^ expected 1 generic argument
|
note: associated type defined here, with 1 generic parameter: `T`
- --> $DIR/issue-105742.rs:43:10
+ --> $DIR/issue-105742.rs:51:10
|
LL | type Item<'a, T>;
| ^^^^ -
@@ -133,7 +133,7 @@ LL | pub fn next<'a, T>(s: &'a mut dyn SVec<Item = T, Output = T>) {
| ^^^^ expected 1 lifetime argument
|
note: associated type defined here, with 1 lifetime parameter: `'a`
- --> $DIR/issue-105742.rs:43:10
+ --> $DIR/issue-105742.rs:51:10
|
LL | type Item<'a, T>;
| ^^^^ --
@@ -149,7 +149,7 @@ LL | pub fn next<'a, T>(s: &'a mut dyn SVec<Item = T, Output = T>) {
| ^^^^ expected 1 generic argument
|
note: associated type defined here, with 1 generic parameter: `T`
- --> $DIR/issue-105742.rs:43:10
+ --> $DIR/issue-105742.rs:51:10
|
LL | type Item<'a, T>;
| ^^^^ -
@@ -165,7 +165,7 @@ LL | <Self as SVec>::Item,
| ^^^^ expected 1 lifetime argument
|
note: associated type defined here, with 1 lifetime parameter: `'a`
- --> $DIR/issue-105742.rs:43:10
+ --> $DIR/issue-105742.rs:51:10
|
LL | type Item<'a, T>;
| ^^^^ --
@@ -181,7 +181,7 @@ LL | <Self as SVec>::Item,
| ^^^^ expected 1 generic argument
|
note: associated type defined here, with 1 generic parameter: `T`
- --> $DIR/issue-105742.rs:43:10
+ --> $DIR/issue-105742.rs:51:10
|
LL | type Item<'a, T>;
| ^^^^ -
@@ -191,13 +191,13 @@ LL | <Self as SVec>::Item<T>,
| +++
error[E0107]: missing generics for associated type `SVec::Item`
- --> $DIR/issue-105742.rs:22:37
+ --> $DIR/issue-105742.rs:24:37
|
LL | Output = <Index<<Self as SVec>::Item,
| ^^^^ expected 1 lifetime argument
|
note: associated type defined here, with 1 lifetime parameter: `'a`
- --> $DIR/issue-105742.rs:43:10
+ --> $DIR/issue-105742.rs:51:10
|
LL | type Item<'a, T>;
| ^^^^ --
@@ -207,13 +207,13 @@ LL | Output = <Index<<Self as SVec>::Item<'a>,
| ++++
error[E0107]: missing generics for associated type `SVec::Item`
- --> $DIR/issue-105742.rs:22:37
+ --> $DIR/issue-105742.rs:24:37
|
LL | Output = <Index<<Self as SVec>::Item,
| ^^^^ expected 1 generic argument
|
note: associated type defined here, with 1 generic parameter: `T`
- --> $DIR/issue-105742.rs:43:10
+ --> $DIR/issue-105742.rs:51:10
|
LL | type Item<'a, T>;
| ^^^^ -
@@ -223,13 +223,13 @@ LL | Output = <Index<<Self as SVec>::Item<T>,
| +++
error[E0107]: missing generics for associated type `SVec::Item`
- --> $DIR/issue-105742.rs:29:30
+ --> $DIR/issue-105742.rs:33:30
|
LL | Output = <Self as SVec>::Item> as SVec>::Item,
| ^^^^ expected 1 lifetime argument
|
note: associated type defined here, with 1 lifetime parameter: `'a`
- --> $DIR/issue-105742.rs:43:10
+ --> $DIR/issue-105742.rs:51:10
|
LL | type Item<'a, T>;
| ^^^^ --
@@ -239,13 +239,13 @@ LL | Output = <Self as SVec>::Item<'a>> as SVec>::Item,
| ++++
error[E0107]: missing generics for associated type `SVec::Item`
- --> $DIR/issue-105742.rs:29:30
+ --> $DIR/issue-105742.rs:33:30
|
LL | Output = <Self as SVec>::Item> as SVec>::Item,
| ^^^^ expected 1 generic argument
|
note: associated type defined here, with 1 generic parameter: `T`
- --> $DIR/issue-105742.rs:43:10
+ --> $DIR/issue-105742.rs:51:10
|
LL | type Item<'a, T>;
| ^^^^ -
@@ -255,13 +255,13 @@ LL | Output = <Self as SVec>::Item<T>> as SVec>::Item,
| +++
error[E0107]: missing generics for associated type `SVec::Item`
- --> $DIR/issue-105742.rs:29:46
+ --> $DIR/issue-105742.rs:33:46
|
LL | Output = <Self as SVec>::Item> as SVec>::Item,
| ^^^^ expected 1 lifetime argument
|
note: associated type defined here, with 1 lifetime parameter: `'a`
- --> $DIR/issue-105742.rs:43:10
+ --> $DIR/issue-105742.rs:51:10
|
LL | type Item<'a, T>;
| ^^^^ --
@@ -271,13 +271,13 @@ LL | Output = <Self as SVec>::Item> as SVec>::Item<'a>,
| ++++
error[E0107]: missing generics for associated type `SVec::Item`
- --> $DIR/issue-105742.rs:29:46
+ --> $DIR/issue-105742.rs:33:46
|
LL | Output = <Self as SVec>::Item> as SVec>::Item,
| ^^^^ expected 1 generic argument
|
note: associated type defined here, with 1 generic parameter: `T`
- --> $DIR/issue-105742.rs:43:10
+ --> $DIR/issue-105742.rs:51:10
|
LL | type Item<'a, T>;
| ^^^^ -
@@ -317,13 +317,141 @@ LL | | > {
| |__^ ...because it uses `Self` as a type parameter
error[E0107]: missing generics for associated type `SVec::Item`
- --> $DIR/issue-105742.rs:45:38
+ --> $DIR/issue-105742.rs:15:21
+ |
+LL | <Self as SVec>::Item,
+ | ^^^^ expected 1 lifetime argument
+ |
+note: associated type defined here, with 1 lifetime parameter: `'a`
+ --> $DIR/issue-105742.rs:51:10
+ |
+LL | type Item<'a, T>;
+ | ^^^^ --
+help: add missing lifetime argument
+ |
+LL | <Self as SVec>::Item<'a>,
+ | ++++
+
+error[E0107]: missing generics for associated type `SVec::Item`
+ --> $DIR/issue-105742.rs:15:21
+ |
+LL | <Self as SVec>::Item,
+ | ^^^^ expected 1 generic argument
+ |
+note: associated type defined here, with 1 generic parameter: `T`
+ --> $DIR/issue-105742.rs:51:10
+ |
+LL | type Item<'a, T>;
+ | ^^^^ -
+help: add missing generic argument
+ |
+LL | <Self as SVec>::Item<T>,
+ | +++
+
+error[E0107]: missing generics for associated type `SVec::Item`
+ --> $DIR/issue-105742.rs:24:37
+ |
+LL | Output = <Index<<Self as SVec>::Item,
+ | ^^^^ expected 1 lifetime argument
+ |
+note: associated type defined here, with 1 lifetime parameter: `'a`
+ --> $DIR/issue-105742.rs:51:10
+ |
+LL | type Item<'a, T>;
+ | ^^^^ --
+help: add missing lifetime argument
+ |
+LL | Output = <Index<<Self as SVec>::Item<'a>,
+ | ++++
+
+error[E0107]: missing generics for associated type `SVec::Item`
+ --> $DIR/issue-105742.rs:24:37
+ |
+LL | Output = <Index<<Self as SVec>::Item,
+ | ^^^^ expected 1 generic argument
+ |
+note: associated type defined here, with 1 generic parameter: `T`
+ --> $DIR/issue-105742.rs:51:10
+ |
+LL | type Item<'a, T>;
+ | ^^^^ -
+help: add missing generic argument
+ |
+LL | Output = <Index<<Self as SVec>::Item<T>,
+ | +++
+
+error[E0107]: missing generics for associated type `SVec::Item`
+ --> $DIR/issue-105742.rs:33:30
+ |
+LL | Output = <Self as SVec>::Item> as SVec>::Item,
+ | ^^^^ expected 1 lifetime argument
+ |
+note: associated type defined here, with 1 lifetime parameter: `'a`
+ --> $DIR/issue-105742.rs:51:10
+ |
+LL | type Item<'a, T>;
+ | ^^^^ --
+help: add missing lifetime argument
+ |
+LL | Output = <Self as SVec>::Item<'a>> as SVec>::Item,
+ | ++++
+
+error[E0107]: missing generics for associated type `SVec::Item`
+ --> $DIR/issue-105742.rs:33:30
+ |
+LL | Output = <Self as SVec>::Item> as SVec>::Item,
+ | ^^^^ expected 1 generic argument
+ |
+note: associated type defined here, with 1 generic parameter: `T`
+ --> $DIR/issue-105742.rs:51:10
+ |
+LL | type Item<'a, T>;
+ | ^^^^ -
+help: add missing generic argument
+ |
+LL | Output = <Self as SVec>::Item<T>> as SVec>::Item,
+ | +++
+
+error[E0107]: missing generics for associated type `SVec::Item`
+ --> $DIR/issue-105742.rs:33:46
+ |
+LL | Output = <Self as SVec>::Item> as SVec>::Item,
+ | ^^^^ expected 1 lifetime argument
+ |
+note: associated type defined here, with 1 lifetime parameter: `'a`
+ --> $DIR/issue-105742.rs:51:10
+ |
+LL | type Item<'a, T>;
+ | ^^^^ --
+help: add missing lifetime argument
+ |
+LL | Output = <Self as SVec>::Item> as SVec>::Item<'a>,
+ | ++++
+
+error[E0107]: missing generics for associated type `SVec::Item`
+ --> $DIR/issue-105742.rs:33:46
+ |
+LL | Output = <Self as SVec>::Item> as SVec>::Item,
+ | ^^^^ expected 1 generic argument
+ |
+note: associated type defined here, with 1 generic parameter: `T`
+ --> $DIR/issue-105742.rs:51:10
+ |
+LL | type Item<'a, T>;
+ | ^^^^ -
+help: add missing generic argument
+ |
+LL | Output = <Self as SVec>::Item> as SVec>::Item<T>,
+ | +++
+
+error[E0107]: missing generics for associated type `SVec::Item`
+ --> $DIR/issue-105742.rs:53:38
|
LL | fn len(&self) -> <Self as SVec>::Item;
| ^^^^ expected 1 lifetime argument
|
note: associated type defined here, with 1 lifetime parameter: `'a`
- --> $DIR/issue-105742.rs:43:10
+ --> $DIR/issue-105742.rs:51:10
|
LL | type Item<'a, T>;
| ^^^^ --
@@ -333,13 +461,13 @@ LL | fn len(&self) -> <Self as SVec>::Item<'_>;
| ++++
error[E0107]: missing generics for associated type `SVec::Item`
- --> $DIR/issue-105742.rs:45:38
+ --> $DIR/issue-105742.rs:53:38
|
LL | fn len(&self) -> <Self as SVec>::Item;
| ^^^^ expected 1 generic argument
|
note: associated type defined here, with 1 generic parameter: `T`
- --> $DIR/issue-105742.rs:43:10
+ --> $DIR/issue-105742.rs:51:10
|
LL | type Item<'a, T>;
| ^^^^ -
@@ -348,7 +476,7 @@ help: add missing generic argument
LL | fn len(&self) -> <Self as SVec>::Item<T>;
| +++
-error: aborting due to 21 previous errors
+error: aborting due to 29 previous errors
Some errors have detailed explanations: E0038, E0107.
For more information about an error, try `rustc --explain E0038`.
diff --git a/tests/rustdoc-ui/issue-106213.rs b/tests/rustdoc-ui/issues/issue-106213.rs
index 6d51846b7..6d51846b7 100644
--- a/tests/rustdoc-ui/issue-106213.rs
+++ b/tests/rustdoc-ui/issues/issue-106213.rs
diff --git a/tests/rustdoc-ui/issue-106213.stderr b/tests/rustdoc-ui/issues/issue-106213.stderr
index 0a4ff69ba..0a4ff69ba 100644
--- a/tests/rustdoc-ui/issue-106213.stderr
+++ b/tests/rustdoc-ui/issues/issue-106213.stderr
diff --git a/tests/rustdoc-ui/issue-106226.rs b/tests/rustdoc-ui/issues/issue-106226.rs
index 71b497a9a..71b497a9a 100644
--- a/tests/rustdoc-ui/issue-106226.rs
+++ b/tests/rustdoc-ui/issues/issue-106226.rs
diff --git a/tests/rustdoc-ui/issue-106226.stderr b/tests/rustdoc-ui/issues/issue-106226.stderr
index 1c973dab6..1c973dab6 100644
--- a/tests/rustdoc-ui/issue-106226.stderr
+++ b/tests/rustdoc-ui/issues/issue-106226.stderr
diff --git a/tests/rustdoc-ui/issue-107918.rs b/tests/rustdoc-ui/issues/issue-107918.rs
index 13788df0f..13788df0f 100644
--- a/tests/rustdoc-ui/issue-107918.rs
+++ b/tests/rustdoc-ui/issues/issue-107918.rs
diff --git a/tests/rustdoc-ui/issue-109282-import-inline-merge.rs b/tests/rustdoc-ui/issues/issue-109282-import-inline-merge.rs
index 0ec852322..0ec852322 100644
--- a/tests/rustdoc-ui/issue-109282-import-inline-merge.rs
+++ b/tests/rustdoc-ui/issues/issue-109282-import-inline-merge.rs
diff --git a/tests/rustdoc-ui/issues/issue-110900.rs b/tests/rustdoc-ui/issues/issue-110900.rs
new file mode 100644
index 000000000..e3154baf8
--- /dev/null
+++ b/tests/rustdoc-ui/issues/issue-110900.rs
@@ -0,0 +1,28 @@
+// check-pass
+
+#![crate_type="lib"]
+#![feature(associated_type_bounds)]
+
+trait A<'a> {}
+trait B<'b> {}
+
+trait C<'c>: for<'a> A<'a> + for<'b> B<'b> {
+ type As;
+}
+
+trait E<'e> {
+ type As;
+}
+trait F<'f>: for<'a> A<'a> + for<'e> E<'e> {}
+struct G<T>
+where
+ T: for<'l, 'i> H<'l, 'i, As: for<'a> A<'a> + 'i>
+{
+ t: std::marker::PhantomData<T>,
+}
+
+trait I<'a, 'b, 'c> {
+ type As;
+}
+
+trait H<'d, 'e>: for<'f> I<'d, 'f, 'e> + 'd {}
diff --git a/tests/rustdoc-ui/issue-58473-2.rs b/tests/rustdoc-ui/issues/issue-58473-2.rs
index 000b6a329..000b6a329 100644
--- a/tests/rustdoc-ui/issue-58473-2.rs
+++ b/tests/rustdoc-ui/issues/issue-58473-2.rs
diff --git a/tests/rustdoc-ui/issue-58473.rs b/tests/rustdoc-ui/issues/issue-58473.rs
index 44e1f58d0..44e1f58d0 100644
--- a/tests/rustdoc-ui/issue-58473.rs
+++ b/tests/rustdoc-ui/issues/issue-58473.rs
diff --git a/tests/rustdoc-ui/issue-61592-2.rs b/tests/rustdoc-ui/issues/issue-61592-2.rs
index 5b4fc5ee7..5b4fc5ee7 100644
--- a/tests/rustdoc-ui/issue-61592-2.rs
+++ b/tests/rustdoc-ui/issues/issue-61592-2.rs
diff --git a/tests/rustdoc-ui/issue-61592-2.stderr b/tests/rustdoc-ui/issues/issue-61592-2.stderr
index 1b7f8bb55..1b7f8bb55 100644
--- a/tests/rustdoc-ui/issue-61592-2.stderr
+++ b/tests/rustdoc-ui/issues/issue-61592-2.stderr
diff --git a/tests/rustdoc-ui/issue-61592.rs b/tests/rustdoc-ui/issues/issue-61592.rs
index 66772557f..66772557f 100644
--- a/tests/rustdoc-ui/issue-61592.rs
+++ b/tests/rustdoc-ui/issues/issue-61592.rs
diff --git a/tests/rustdoc-ui/issue-61592.stderr b/tests/rustdoc-ui/issues/issue-61592.stderr
index 9c9c9106f..9c9c9106f 100644
--- a/tests/rustdoc-ui/issue-61592.stderr
+++ b/tests/rustdoc-ui/issues/issue-61592.stderr
diff --git a/tests/rustdoc-ui/issue-61732.rs b/tests/rustdoc-ui/issues/issue-61732.rs
index 4bd8efeaa..4bd8efeaa 100644
--- a/tests/rustdoc-ui/issue-61732.rs
+++ b/tests/rustdoc-ui/issues/issue-61732.rs
diff --git a/tests/rustdoc-ui/issue-61732.stderr b/tests/rustdoc-ui/issues/issue-61732.stderr
index d16ec6a85..d16ec6a85 100644
--- a/tests/rustdoc-ui/issue-61732.stderr
+++ b/tests/rustdoc-ui/issues/issue-61732.stderr
diff --git a/tests/rustdoc-ui/issue-74134.private.stderr b/tests/rustdoc-ui/issues/issue-74134.private.stderr
index 44c88b618..44c88b618 100644
--- a/tests/rustdoc-ui/issue-74134.private.stderr
+++ b/tests/rustdoc-ui/issues/issue-74134.private.stderr
diff --git a/tests/rustdoc-ui/issue-74134.public.stderr b/tests/rustdoc-ui/issues/issue-74134.public.stderr
index 5b1887b83..5b1887b83 100644
--- a/tests/rustdoc-ui/issue-74134.public.stderr
+++ b/tests/rustdoc-ui/issues/issue-74134.public.stderr
diff --git a/tests/rustdoc-ui/issue-74134.rs b/tests/rustdoc-ui/issues/issue-74134.rs
index b1be9123a..b1be9123a 100644
--- a/tests/rustdoc-ui/issue-74134.rs
+++ b/tests/rustdoc-ui/issues/issue-74134.rs
diff --git a/tests/rustdoc-ui/issue-79465.rs b/tests/rustdoc-ui/issues/issue-79465.rs
index e50f3995b..e50f3995b 100644
--- a/tests/rustdoc-ui/issue-79465.rs
+++ b/tests/rustdoc-ui/issues/issue-79465.rs
diff --git a/tests/rustdoc-ui/issue-79465.stderr b/tests/rustdoc-ui/issues/issue-79465.stderr
index d187a2e66..d187a2e66 100644
--- a/tests/rustdoc-ui/issue-79465.stderr
+++ b/tests/rustdoc-ui/issues/issue-79465.stderr
diff --git a/tests/rustdoc-ui/issue-79467.rs b/tests/rustdoc-ui/issues/issue-79467.rs
index eb0b9b380..eb0b9b380 100644
--- a/tests/rustdoc-ui/issue-79467.rs
+++ b/tests/rustdoc-ui/issues/issue-79467.rs
diff --git a/tests/rustdoc-ui/issue-79467.stderr b/tests/rustdoc-ui/issues/issue-79467.stderr
index 561513a43..561513a43 100644
--- a/tests/rustdoc-ui/issue-79467.stderr
+++ b/tests/rustdoc-ui/issues/issue-79467.stderr
diff --git a/tests/rustdoc-ui/issue-79494.rs b/tests/rustdoc-ui/issues/issue-79494.rs
index fc39424b7..fc39424b7 100644
--- a/tests/rustdoc-ui/issue-79494.rs
+++ b/tests/rustdoc-ui/issues/issue-79494.rs
diff --git a/tests/rustdoc-ui/issue-79494.stderr b/tests/rustdoc-ui/issues/issue-79494.stderr
index 7ed5ed382..7ed5ed382 100644
--- a/tests/rustdoc-ui/issue-79494.stderr
+++ b/tests/rustdoc-ui/issues/issue-79494.stderr
diff --git a/tests/rustdoc-ui/issue-80992.rs b/tests/rustdoc-ui/issues/issue-80992.rs
index 80ff225b8..f5ae16981 100644
--- a/tests/rustdoc-ui/issue-80992.rs
+++ b/tests/rustdoc-ui/issues/issue-80992.rs
@@ -1,6 +1,6 @@
// check-pass
// compile-flags:--test
-// normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+// normalize-stdout-test: "tests/rustdoc-ui/issues" -> "$$DIR"
// normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
pub fn test() -> Result<(), ()> {
diff --git a/tests/rustdoc-ui/issue-80992.stdout b/tests/rustdoc-ui/issues/issue-80992.stdout
index d2b1cd1d5..d2b1cd1d5 100644
--- a/tests/rustdoc-ui/issue-80992.stdout
+++ b/tests/rustdoc-ui/issues/issue-80992.stdout
diff --git a/tests/rustdoc-ui/issue-81662-shortness.rs b/tests/rustdoc-ui/issues/issue-81662-shortness.rs
index 8a90813b3..0240d217b 100644
--- a/tests/rustdoc-ui/issue-81662-shortness.rs
+++ b/tests/rustdoc-ui/issues/issue-81662-shortness.rs
@@ -1,5 +1,5 @@
// compile-flags:--test --error-format=short
-// normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+// normalize-stdout-test: "tests/rustdoc-ui/issues" -> "$$DIR"
// normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
// failure-status: 101
diff --git a/tests/rustdoc-ui/issue-81662-shortness.stdout b/tests/rustdoc-ui/issues/issue-81662-shortness.stdout
index 748113be3..748113be3 100644
--- a/tests/rustdoc-ui/issue-81662-shortness.stdout
+++ b/tests/rustdoc-ui/issues/issue-81662-shortness.stdout
diff --git a/tests/rustdoc-ui/issue-83883-describe-lints.rs b/tests/rustdoc-ui/issues/issue-83883-describe-lints.rs
index 0474d6c14..0474d6c14 100644
--- a/tests/rustdoc-ui/issue-83883-describe-lints.rs
+++ b/tests/rustdoc-ui/issues/issue-83883-describe-lints.rs
diff --git a/tests/rustdoc-ui/issue-83883-describe-lints.stdout b/tests/rustdoc-ui/issues/issue-83883-describe-lints.stdout
index bbf66a315..bbf66a315 100644
--- a/tests/rustdoc-ui/issue-83883-describe-lints.stdout
+++ b/tests/rustdoc-ui/issues/issue-83883-describe-lints.stdout
diff --git a/tests/rustdoc-ui/issue-91134.rs b/tests/rustdoc-ui/issues/issue-91134.rs
index 42703ee4d..85362f186 100644
--- a/tests/rustdoc-ui/issue-91134.rs
+++ b/tests/rustdoc-ui/issues/issue-91134.rs
@@ -1,7 +1,7 @@
// compile-flags: --test --crate-name=empty_fn --extern=empty_fn --test-args=--test-threads=1
// aux-build:empty-fn.rs
// check-pass
-// normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+// normalize-stdout-test: "tests/rustdoc-ui/issues" -> "$$DIR"
// normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
// edition:2021
diff --git a/tests/rustdoc-ui/issue-91134.stdout b/tests/rustdoc-ui/issues/issue-91134.stdout
index 084062743..084062743 100644
--- a/tests/rustdoc-ui/issue-91134.stdout
+++ b/tests/rustdoc-ui/issues/issue-91134.stdout
diff --git a/tests/rustdoc-ui/issue-91713.rs b/tests/rustdoc-ui/issues/issue-91713.rs
index 610bbf11d..610bbf11d 100644
--- a/tests/rustdoc-ui/issue-91713.rs
+++ b/tests/rustdoc-ui/issues/issue-91713.rs
diff --git a/tests/rustdoc-ui/issue-91713.stderr b/tests/rustdoc-ui/issues/issue-91713.stderr
index 44ead7a1d..44ead7a1d 100644
--- a/tests/rustdoc-ui/issue-91713.stderr
+++ b/tests/rustdoc-ui/issues/issue-91713.stderr
diff --git a/tests/rustdoc-ui/issue-91713.stdout b/tests/rustdoc-ui/issues/issue-91713.stdout
index 167835243..167835243 100644
--- a/tests/rustdoc-ui/issue-91713.stdout
+++ b/tests/rustdoc-ui/issues/issue-91713.stdout
diff --git a/tests/rustdoc-ui/issue-96287.rs b/tests/rustdoc-ui/issues/issue-96287.rs
index 08cc7ef4c..08cc7ef4c 100644
--- a/tests/rustdoc-ui/issue-96287.rs
+++ b/tests/rustdoc-ui/issues/issue-96287.rs
diff --git a/tests/rustdoc-ui/issue-96287.stderr b/tests/rustdoc-ui/issues/issue-96287.stderr
index 7722eb960..7722eb960 100644
--- a/tests/rustdoc-ui/issue-96287.stderr
+++ b/tests/rustdoc-ui/issues/issue-96287.stderr
diff --git a/tests/rustdoc-ui/issue-98690.rs b/tests/rustdoc-ui/issues/issue-98690.rs
index fe9bd87ab..fe9bd87ab 100644
--- a/tests/rustdoc-ui/issue-98690.rs
+++ b/tests/rustdoc-ui/issues/issue-98690.rs
diff --git a/tests/rustdoc-ui/issue-98690.stderr b/tests/rustdoc-ui/issues/issue-98690.stderr
index 47d94f99a..47d94f99a 100644
--- a/tests/rustdoc-ui/issue-98690.stderr
+++ b/tests/rustdoc-ui/issues/issue-98690.stderr
diff --git a/tests/rustdoc-ui/bare-urls.fixed b/tests/rustdoc-ui/lints/bare-urls.fixed
index 23aa5c44c..23aa5c44c 100644
--- a/tests/rustdoc-ui/bare-urls.fixed
+++ b/tests/rustdoc-ui/lints/bare-urls.fixed
diff --git a/tests/rustdoc-ui/bare-urls.rs b/tests/rustdoc-ui/lints/bare-urls.rs
index 592f57343..592f57343 100644
--- a/tests/rustdoc-ui/bare-urls.rs
+++ b/tests/rustdoc-ui/lints/bare-urls.rs
diff --git a/tests/rustdoc-ui/bare-urls.stderr b/tests/rustdoc-ui/lints/bare-urls.stderr
index ccf52cd0b..ccf52cd0b 100644
--- a/tests/rustdoc-ui/bare-urls.stderr
+++ b/tests/rustdoc-ui/lints/bare-urls.stderr
diff --git a/tests/rustdoc-ui/check-attr.rs b/tests/rustdoc-ui/lints/check-attr.rs
index 0b3f7bedd..0b3f7bedd 100644
--- a/tests/rustdoc-ui/check-attr.rs
+++ b/tests/rustdoc-ui/lints/check-attr.rs
diff --git a/tests/rustdoc-ui/check-attr.stderr b/tests/rustdoc-ui/lints/check-attr.stderr
index f66e63ab7..f66e63ab7 100644
--- a/tests/rustdoc-ui/check-attr.stderr
+++ b/tests/rustdoc-ui/lints/check-attr.stderr
diff --git a/tests/rustdoc-ui/check-fail.rs b/tests/rustdoc-ui/lints/check-fail.rs
index 02632b4ce..02632b4ce 100644
--- a/tests/rustdoc-ui/check-fail.rs
+++ b/tests/rustdoc-ui/lints/check-fail.rs
diff --git a/tests/rustdoc-ui/check-fail.stderr b/tests/rustdoc-ui/lints/check-fail.stderr
index f05e457af..f05e457af 100644
--- a/tests/rustdoc-ui/check-fail.stderr
+++ b/tests/rustdoc-ui/lints/check-fail.stderr
diff --git a/tests/rustdoc-ui/check.rs b/tests/rustdoc-ui/lints/check.rs
index e389a81bb..e389a81bb 100644
--- a/tests/rustdoc-ui/check.rs
+++ b/tests/rustdoc-ui/lints/check.rs
diff --git a/tests/rustdoc-ui/check.stderr b/tests/rustdoc-ui/lints/check.stderr
index c5ed5d0c3..c5ed5d0c3 100644
--- a/tests/rustdoc-ui/check.stderr
+++ b/tests/rustdoc-ui/lints/check.stderr
diff --git a/tests/rustdoc-ui/deny-missing-docs-crate.rs b/tests/rustdoc-ui/lints/deny-missing-docs-crate.rs
index b74eba3f6..b74eba3f6 100644
--- a/tests/rustdoc-ui/deny-missing-docs-crate.rs
+++ b/tests/rustdoc-ui/lints/deny-missing-docs-crate.rs
diff --git a/tests/rustdoc-ui/deny-missing-docs-crate.stderr b/tests/rustdoc-ui/lints/deny-missing-docs-crate.stderr
index 5025b0b0c..5025b0b0c 100644
--- a/tests/rustdoc-ui/deny-missing-docs-crate.stderr
+++ b/tests/rustdoc-ui/lints/deny-missing-docs-crate.stderr
diff --git a/tests/rustdoc-ui/deny-missing-docs-macro.rs b/tests/rustdoc-ui/lints/deny-missing-docs-macro.rs
index b1c125317..b1c125317 100644
--- a/tests/rustdoc-ui/deny-missing-docs-macro.rs
+++ b/tests/rustdoc-ui/lints/deny-missing-docs-macro.rs
diff --git a/tests/rustdoc-ui/deny-missing-docs-macro.stderr b/tests/rustdoc-ui/lints/deny-missing-docs-macro.stderr
index 0867b0818..0867b0818 100644
--- a/tests/rustdoc-ui/deny-missing-docs-macro.stderr
+++ b/tests/rustdoc-ui/lints/deny-missing-docs-macro.stderr
diff --git a/tests/rustdoc-ui/doc-attr.rs b/tests/rustdoc-ui/lints/doc-attr.rs
index 980d1c0e2..980d1c0e2 100644
--- a/tests/rustdoc-ui/doc-attr.rs
+++ b/tests/rustdoc-ui/lints/doc-attr.rs
diff --git a/tests/rustdoc-ui/doc-attr.stderr b/tests/rustdoc-ui/lints/doc-attr.stderr
index 68df2771f..68df2771f 100644
--- a/tests/rustdoc-ui/doc-attr.stderr
+++ b/tests/rustdoc-ui/lints/doc-attr.stderr
diff --git a/tests/rustdoc-ui/doc-spotlight.fixed b/tests/rustdoc-ui/lints/doc-spotlight.fixed
index 4b58778ea..4b58778ea 100644
--- a/tests/rustdoc-ui/doc-spotlight.fixed
+++ b/tests/rustdoc-ui/lints/doc-spotlight.fixed
diff --git a/tests/rustdoc-ui/doc-spotlight.rs b/tests/rustdoc-ui/lints/doc-spotlight.rs
index 16e387245..16e387245 100644
--- a/tests/rustdoc-ui/doc-spotlight.rs
+++ b/tests/rustdoc-ui/lints/doc-spotlight.rs
diff --git a/tests/rustdoc-ui/doc-spotlight.stderr b/tests/rustdoc-ui/lints/doc-spotlight.stderr
index 58612327f..58612327f 100644
--- a/tests/rustdoc-ui/doc-spotlight.stderr
+++ b/tests/rustdoc-ui/lints/doc-spotlight.stderr
diff --git a/tests/rustdoc-ui/doc-without-codeblock.rs b/tests/rustdoc-ui/lints/doc-without-codeblock.rs
index 86d7c83d3..86d7c83d3 100644
--- a/tests/rustdoc-ui/doc-without-codeblock.rs
+++ b/tests/rustdoc-ui/lints/doc-without-codeblock.rs
diff --git a/tests/rustdoc-ui/doc-without-codeblock.stderr b/tests/rustdoc-ui/lints/doc-without-codeblock.stderr
index ebf2a2d54..ebf2a2d54 100644
--- a/tests/rustdoc-ui/doc-without-codeblock.stderr
+++ b/tests/rustdoc-ui/lints/doc-without-codeblock.stderr
diff --git a/tests/rustdoc-ui/doc_cfg_hide.rs b/tests/rustdoc-ui/lints/doc_cfg_hide.rs
index 5d8791748..5d8791748 100644
--- a/tests/rustdoc-ui/doc_cfg_hide.rs
+++ b/tests/rustdoc-ui/lints/doc_cfg_hide.rs
diff --git a/tests/rustdoc-ui/doc_cfg_hide.stderr b/tests/rustdoc-ui/lints/doc_cfg_hide.stderr
index 03623368c..b7e8870fd 100644
--- a/tests/rustdoc-ui/doc_cfg_hide.stderr
+++ b/tests/rustdoc-ui/lints/doc_cfg_hide.stderr
@@ -16,7 +16,7 @@ LL | #![deny(warnings)]
help: to apply to the crate, use an inner attribute
|
LL | #![doc(cfg_hide(doc))]
- | ~~~~~~~~~~~~~~~~~~~~~~
+ | +
error: `#[doc(cfg_hide(...)]` takes a list of attributes
--> $DIR/doc_cfg_hide.rs:4:8
diff --git a/tests/rustdoc-ui/expect-tool-lint-rfc-2383.rs b/tests/rustdoc-ui/lints/expect-tool-lint-rfc-2383.rs
index 0901ac364..0901ac364 100644
--- a/tests/rustdoc-ui/expect-tool-lint-rfc-2383.rs
+++ b/tests/rustdoc-ui/lints/expect-tool-lint-rfc-2383.rs
diff --git a/tests/rustdoc-ui/expect-tool-lint-rfc-2383.stderr b/tests/rustdoc-ui/lints/expect-tool-lint-rfc-2383.stderr
index efc5f349f..efc5f349f 100644
--- a/tests/rustdoc-ui/expect-tool-lint-rfc-2383.stderr
+++ b/tests/rustdoc-ui/lints/expect-tool-lint-rfc-2383.stderr
diff --git a/tests/rustdoc-ui/feature-gate-rustdoc_missing_doc_code_examples.rs b/tests/rustdoc-ui/lints/feature-gate-rustdoc_missing_doc_code_examples.rs
index c34ea0567..c34ea0567 100644
--- a/tests/rustdoc-ui/feature-gate-rustdoc_missing_doc_code_examples.rs
+++ b/tests/rustdoc-ui/lints/feature-gate-rustdoc_missing_doc_code_examples.rs
diff --git a/tests/rustdoc-ui/feature-gate-rustdoc_missing_doc_code_examples.stderr b/tests/rustdoc-ui/lints/feature-gate-rustdoc_missing_doc_code_examples.stderr
index 326dcfe3b..326dcfe3b 100644
--- a/tests/rustdoc-ui/feature-gate-rustdoc_missing_doc_code_examples.stderr
+++ b/tests/rustdoc-ui/lints/feature-gate-rustdoc_missing_doc_code_examples.stderr
diff --git a/tests/rustdoc-ui/invalid-doc-attr.rs b/tests/rustdoc-ui/lints/invalid-doc-attr.rs
index de004b41e..c231e43b3 100644
--- a/tests/rustdoc-ui/invalid-doc-attr.rs
+++ b/tests/rustdoc-ui/lints/invalid-doc-attr.rs
@@ -5,7 +5,7 @@
//~^ ERROR can only be applied at the crate level
//~| WARN is being phased out
//~| HELP to apply to the crate, use an inner attribute
-//~| SUGGESTION #![doc(test(no_crate_inject))]
+//~| SUGGESTION !
#[doc(inline)]
//~^ ERROR can only be applied to a `use` item
//~| WARN is being phased out
diff --git a/tests/rustdoc-ui/invalid-doc-attr.stderr b/tests/rustdoc-ui/lints/invalid-doc-attr.stderr
index 3c66e587b..b23b8ded8 100644
--- a/tests/rustdoc-ui/invalid-doc-attr.stderr
+++ b/tests/rustdoc-ui/lints/invalid-doc-attr.stderr
@@ -16,7 +16,7 @@ LL | #![deny(warnings)]
help: to apply to the crate, use an inner attribute
|
LL | #![doc(test(no_crate_inject))]
- |
+ | +
error: this attribute can only be applied to a `use` item
--> $DIR/invalid-doc-attr.rs:9:7
diff --git a/tests/rustdoc-ui/invalid-html-self-closing-tag.rs b/tests/rustdoc-ui/lints/invalid-html-self-closing-tag.rs
index d973a53cb..d973a53cb 100644
--- a/tests/rustdoc-ui/invalid-html-self-closing-tag.rs
+++ b/tests/rustdoc-ui/lints/invalid-html-self-closing-tag.rs
diff --git a/tests/rustdoc-ui/invalid-html-self-closing-tag.stderr b/tests/rustdoc-ui/lints/invalid-html-self-closing-tag.stderr
index e45edfb43..e45edfb43 100644
--- a/tests/rustdoc-ui/invalid-html-self-closing-tag.stderr
+++ b/tests/rustdoc-ui/lints/invalid-html-self-closing-tag.stderr
diff --git a/tests/rustdoc-ui/invalid-html-tags.rs b/tests/rustdoc-ui/lints/invalid-html-tags.rs
index 317f1fd1d..317f1fd1d 100644
--- a/tests/rustdoc-ui/invalid-html-tags.rs
+++ b/tests/rustdoc-ui/lints/invalid-html-tags.rs
diff --git a/tests/rustdoc-ui/invalid-html-tags.stderr b/tests/rustdoc-ui/lints/invalid-html-tags.stderr
index 9c2bfcf2c..9c2bfcf2c 100644
--- a/tests/rustdoc-ui/invalid-html-tags.stderr
+++ b/tests/rustdoc-ui/lints/invalid-html-tags.stderr
diff --git a/tests/rustdoc-ui/lint-group.rs b/tests/rustdoc-ui/lints/lint-group.rs
index ad88157f6..ad88157f6 100644
--- a/tests/rustdoc-ui/lint-group.rs
+++ b/tests/rustdoc-ui/lints/lint-group.rs
diff --git a/tests/rustdoc-ui/lint-group.stderr b/tests/rustdoc-ui/lints/lint-group.stderr
index 7ff09fcc4..7ff09fcc4 100644
--- a/tests/rustdoc-ui/lint-group.stderr
+++ b/tests/rustdoc-ui/lints/lint-group.stderr
diff --git a/tests/rustdoc-ui/lint-missing-doc-code-example.rs b/tests/rustdoc-ui/lints/lint-missing-doc-code-example.rs
index 40f35728d..40f35728d 100644
--- a/tests/rustdoc-ui/lint-missing-doc-code-example.rs
+++ b/tests/rustdoc-ui/lints/lint-missing-doc-code-example.rs
diff --git a/tests/rustdoc-ui/lint-missing-doc-code-example.stderr b/tests/rustdoc-ui/lints/lint-missing-doc-code-example.stderr
index f93312501..f93312501 100644
--- a/tests/rustdoc-ui/lint-missing-doc-code-example.stderr
+++ b/tests/rustdoc-ui/lints/lint-missing-doc-code-example.stderr
diff --git a/tests/rustdoc-ui/no-crate-level-doc-lint.rs b/tests/rustdoc-ui/lints/no-crate-level-doc-lint.rs
index a186410ac..a186410ac 100644
--- a/tests/rustdoc-ui/no-crate-level-doc-lint.rs
+++ b/tests/rustdoc-ui/lints/no-crate-level-doc-lint.rs
diff --git a/tests/rustdoc-ui/no-crate-level-doc-lint.stderr b/tests/rustdoc-ui/lints/no-crate-level-doc-lint.stderr
index fb3a5e415..fb3a5e415 100644
--- a/tests/rustdoc-ui/no-crate-level-doc-lint.stderr
+++ b/tests/rustdoc-ui/lints/no-crate-level-doc-lint.stderr
diff --git a/tests/rustdoc-ui/renamed-lint-still-applies.rs b/tests/rustdoc-ui/lints/renamed-lint-still-applies.rs
index a4d3a4b49..a4d3a4b49 100644
--- a/tests/rustdoc-ui/renamed-lint-still-applies.rs
+++ b/tests/rustdoc-ui/lints/renamed-lint-still-applies.rs
diff --git a/tests/rustdoc-ui/renamed-lint-still-applies.stderr b/tests/rustdoc-ui/lints/renamed-lint-still-applies.stderr
index ee9b67cb9..ee9b67cb9 100644
--- a/tests/rustdoc-ui/renamed-lint-still-applies.stderr
+++ b/tests/rustdoc-ui/lints/renamed-lint-still-applies.stderr
diff --git a/tests/rustdoc-ui/rustdoc-all-only-stable-lints.rs b/tests/rustdoc-ui/lints/rustdoc-all-only-stable-lints.rs
index e106d06af..e106d06af 100644
--- a/tests/rustdoc-ui/rustdoc-all-only-stable-lints.rs
+++ b/tests/rustdoc-ui/lints/rustdoc-all-only-stable-lints.rs
diff --git a/tests/rustdoc-ui/unknown-renamed-lints.rs b/tests/rustdoc-ui/lints/unknown-renamed-lints.rs
index ddf03dd07..ddf03dd07 100644
--- a/tests/rustdoc-ui/unknown-renamed-lints.rs
+++ b/tests/rustdoc-ui/lints/unknown-renamed-lints.rs
diff --git a/tests/rustdoc-ui/unknown-renamed-lints.stderr b/tests/rustdoc-ui/lints/unknown-renamed-lints.stderr
index bf529b9f8..bf529b9f8 100644
--- a/tests/rustdoc-ui/unknown-renamed-lints.stderr
+++ b/tests/rustdoc-ui/lints/unknown-renamed-lints.stderr
diff --git a/tests/rustdoc-ui/unused-braces-lint.rs b/tests/rustdoc-ui/lints/unused-braces-lint.rs
index be0e31e4b..be0e31e4b 100644
--- a/tests/rustdoc-ui/unused-braces-lint.rs
+++ b/tests/rustdoc-ui/lints/unused-braces-lint.rs
diff --git a/tests/rustdoc-ui/unused.rs b/tests/rustdoc-ui/lints/unused.rs
index 702b24c36..702b24c36 100644
--- a/tests/rustdoc-ui/unused.rs
+++ b/tests/rustdoc-ui/lints/unused.rs
diff --git a/tests/rustdoc-ui/scrape-examples-fail-if-type-error.rs b/tests/rustdoc-ui/scrape-examples/scrape-examples-fail-if-type-error.rs
index 8f4fde96d..8f4fde96d 100644
--- a/tests/rustdoc-ui/scrape-examples-fail-if-type-error.rs
+++ b/tests/rustdoc-ui/scrape-examples/scrape-examples-fail-if-type-error.rs
diff --git a/tests/rustdoc-ui/scrape-examples-fail-if-type-error.stderr b/tests/rustdoc-ui/scrape-examples/scrape-examples-fail-if-type-error.stderr
index 750aa3207..750aa3207 100644
--- a/tests/rustdoc-ui/scrape-examples-fail-if-type-error.stderr
+++ b/tests/rustdoc-ui/scrape-examples/scrape-examples-fail-if-type-error.stderr
diff --git a/tests/rustdoc-ui/scrape-examples-ice.rs b/tests/rustdoc-ui/scrape-examples/scrape-examples-ice.rs
index d629b62a7..d629b62a7 100644
--- a/tests/rustdoc-ui/scrape-examples-ice.rs
+++ b/tests/rustdoc-ui/scrape-examples/scrape-examples-ice.rs
diff --git a/tests/rustdoc-ui/scrape-examples-wrong-options-1.rs b/tests/rustdoc-ui/scrape-examples/scrape-examples-wrong-options-1.rs
index a1f005c32..a1f005c32 100644
--- a/tests/rustdoc-ui/scrape-examples-wrong-options-1.rs
+++ b/tests/rustdoc-ui/scrape-examples/scrape-examples-wrong-options-1.rs
diff --git a/tests/rustdoc-ui/scrape-examples-wrong-options-1.stderr b/tests/rustdoc-ui/scrape-examples/scrape-examples-wrong-options-1.stderr
index eb8e9f799..eb8e9f799 100644
--- a/tests/rustdoc-ui/scrape-examples-wrong-options-1.stderr
+++ b/tests/rustdoc-ui/scrape-examples/scrape-examples-wrong-options-1.stderr
diff --git a/tests/rustdoc-ui/scrape-examples-wrong-options-2.rs b/tests/rustdoc-ui/scrape-examples/scrape-examples-wrong-options-2.rs
index 4aacec7f0..4aacec7f0 100644
--- a/tests/rustdoc-ui/scrape-examples-wrong-options-2.rs
+++ b/tests/rustdoc-ui/scrape-examples/scrape-examples-wrong-options-2.rs
diff --git a/tests/rustdoc-ui/scrape-examples-wrong-options-2.stderr b/tests/rustdoc-ui/scrape-examples/scrape-examples-wrong-options-2.stderr
index eb8e9f799..eb8e9f799 100644
--- a/tests/rustdoc-ui/scrape-examples-wrong-options-2.stderr
+++ b/tests/rustdoc-ui/scrape-examples/scrape-examples-wrong-options-2.stderr
diff --git a/tests/rustdoc-ui/unescaped_backticks.rs b/tests/rustdoc-ui/unescaped_backticks.rs
new file mode 100644
index 000000000..e99cd1f3d
--- /dev/null
+++ b/tests/rustdoc-ui/unescaped_backticks.rs
@@ -0,0 +1,354 @@
+#![deny(rustdoc::unescaped_backticks)]
+#![allow(rustdoc::broken_intra_doc_links)]
+#![allow(rustdoc::invalid_html_tags)]
+
+///
+pub fn empty() {}
+
+#[doc = ""]
+pub fn empty2() {}
+
+/// `
+//~^ ERROR unescaped backtick
+pub fn single() {}
+
+/// \`
+pub fn escaped() {}
+
+/// \\`
+//~^ ERROR unescaped backtick
+pub fn not_escaped() {}
+
+/// \\\`
+pub fn not_not_escaped() {}
+
+/// [`link1]
+//~^ ERROR unescaped backtick
+pub fn link1() {}
+
+/// [link2`]
+//~^ ERROR unescaped backtick
+pub fn link2() {}
+
+/// [`link_long](link_long)
+//~^ ERROR unescaped backtick
+pub fn link_long() {}
+
+/// [`broken-link]
+//~^ ERROR unescaped backtick
+pub fn broken_link() {}
+
+/// <xx:`>
+pub fn url() {}
+
+/// <x:`>
+//~^ ERROR unescaped backtick
+pub fn not_url() {}
+
+/// <h1>`</h1>
+pub fn html_tag() {}
+
+/// &#96;
+pub fn html_escape() {}
+
+/// 🦀`🦀
+//~^ ERROR unescaped backtick
+pub fn unicode() {}
+
+/// `foo(
+//~^ ERROR unescaped backtick
+///
+/// paragraph
+pub fn paragraph() {}
+
+/// `foo `bar`
+//~^ ERROR unescaped backtick
+///
+/// paragraph
+pub fn paragraph2() {}
+
+/// `foo(
+//~^ ERROR unescaped backtick
+/// not paragraph
+pub fn not_paragraph() {}
+
+/// Addition is commutative, which means that add(a, b)` is the same as `add(b, a)`.
+//~^ ERROR unescaped backtick
+///
+/// You could use this function to add 42 to a number `n` (add(n, 42)`),
+/// or even to add a number `n` to 42 (`add(42, b)`)!
+//~^ ERROR unescaped backtick
+pub fn add1(a: i32, b: i32) -> i32 { a + b }
+
+/// Addition is commutative, which means that `add(a, b) is the same as `add(b, a)`.
+//~^ ERROR unescaped backtick
+///
+/// You could use this function to add 42 to a number `n` (`add(n, 42)),
+/// or even to add a number `n` to 42 (`add(42, n)`)!
+//~^ ERROR unescaped backtick
+pub fn add2(a: i32, b: i32) -> i32 { a + b }
+
+/// Addition is commutative, which means that `add(a, b)` is the same as add(b, a)`.
+//~^ ERROR unescaped backtick
+///
+/// You could use this function to add 42 to a number `n` (`add(n, 42)`),
+/// or even to add a number `n` to 42 (add(42, n)`)!
+//~^ ERROR unescaped backtick
+pub fn add3(a: i32, b: i32) -> i32 { a + b }
+
+/// Addition is commutative, which means that `add(a, b)` is the same as `add(b, a).
+//~^ ERROR unescaped backtick
+///
+/// You could use this function to add 42 to a number `n` (`add(n, 42)),
+/// or even to add a number `n` to 42 (`add(42, n)`)!
+//~^ ERROR unescaped backtick
+pub fn add4(a: i32, b: i32) -> i32 { a + b }
+
+#[doc = "`"]
+//~^ ERROR unescaped backtick
+pub fn attr() {}
+
+#[doc = concat!("\\", "`")]
+pub fn attr_escaped() {}
+
+#[doc = concat!("\\\\", "`")]
+//~^ ERROR unescaped backtick
+pub fn attr_not_escaped() {}
+
+#[doc = "Addition is commutative, which means that add(a, b)` is the same as `add(b, a)`."]
+//~^ ERROR unescaped backtick
+pub fn attr_add1(a: i32, b: i32) -> i32 { a + b }
+
+#[doc = "Addition is commutative, which means that `add(a, b) is the same as `add(b, a)`."]
+//~^ ERROR unescaped backtick
+pub fn attr_add2(a: i32, b: i32) -> i32 { a + b }
+
+#[doc = "Addition is commutative, which means that `add(a, b)` is the same as add(b, a)`."]
+//~^ ERROR unescaped backtick
+pub fn attr_add3(a: i32, b: i32) -> i32 { a + b }
+
+#[doc = "Addition is commutative, which means that `add(a, b)` is the same as `add(b, a)."]
+//~^ ERROR unescaped backtick
+pub fn attr_add4(a: i32, b: i32) -> i32 { a + b }
+
+/// ``double backticks``
+/// `foo
+//~^ ERROR unescaped backtick
+pub fn double_backticks() {}
+
+/// # `(heading
+//~^ ERROR unescaped backtick
+/// ## heading2)`
+//~^ ERROR unescaped backtick
+///
+/// multi `(
+//~^ ERROR unescaped backtick
+/// line
+/// ) heading
+/// =
+///
+/// para)`(graph
+//~^ ERROR unescaped backtick
+///
+/// para)`(graph2
+//~^ ERROR unescaped backtick
+///
+/// 1. foo)`
+//~^ ERROR unescaped backtick
+/// 2. `(bar
+//~^ ERROR unescaped backtick
+/// * baz)`
+//~^ ERROR unescaped backtick
+/// * `(quux
+//~^ ERROR unescaped backtick
+///
+/// `#![this_is_actually_an_image(and(not), an = "attribute")]
+//~^ ERROR unescaped backtick
+///
+/// #![this_is_actually_an_image(and(not), an = "attribute")]`
+//~^ ERROR unescaped backtick
+///
+/// [this_is_actually_an_image(and(not), an = "attribute")]: `.png
+///
+/// | `table( | )head` |
+//~^ ERROR unescaped backtick
+//~| ERROR unescaped backtick
+/// |---------|--------|
+/// | table`( | )`body |
+//~^ ERROR unescaped backtick
+//~| ERROR unescaped backtick
+pub fn complicated_markdown() {}
+
+/// The `custom_mir` attribute tells the compiler to treat the function as being custom MIR. This
+/// attribute only works on functions - there is no way to insert custom MIR into the middle of
+/// another function. The `dialect` and `phase` parameters indicate which [version of MIR][dialect
+/// docs] you are inserting here. Generally you'll want to use `#![custom_mir(dialect = "built")]`
+/// if you want your MIR to be modified by the full MIR pipeline, or `#![custom_mir(dialect =
+//~^ ERROR unescaped backtick
+/// "runtime", phase = "optimized")] if you don't.
+pub mod mir {}
+
+pub mod rustc {
+ /// Constructs a `TyKind::Error` type and registers a `delay_span_bug` with the given `msg to
+ //~^ ERROR unescaped backtick
+ /// ensure it gets used.
+ pub fn ty_error_with_message() {}
+
+ pub struct WhereClause {
+ /// `true` if we ate a `where` token: this can happen
+ /// if we parsed no predicates (e.g. `struct Foo where {}
+ /// This allows us to accurately pretty-print
+ /// in `nt_to_tokenstream`
+ //~^ ERROR unescaped backtick
+ pub has_where_token: bool,
+ }
+
+ /// A symbol is an interned or gensymed string. The use of `newtype_index!` means
+ /// that `Option<Symbol>` only takes up 4 bytes, because `newtype_index! reserves
+ //~^ ERROR unescaped backtick
+ /// the last 256 values for tagging purposes.
+ pub struct Symbol();
+
+ /// It is equivalent to `OpenOptions::new()` but allows you to write more
+ /// readable code. Instead of `OpenOptions::new().read(true).open("foo.txt")`
+ /// you can write `File::with_options().read(true).open("foo.txt"). This
+ /// also avoids the need to import `OpenOptions`.
+ //~^ ERROR unescaped backtick
+ pub fn with_options() {}
+
+ /// Subtracts `set from `row`. `set` can be either `BitSet` or
+ /// `HybridBitSet`. Has no effect if `row` does not exist.
+ //~^ ERROR unescaped backtick
+ ///
+ /// Returns true if the row was changed.
+ pub fn subtract_row() {}
+
+ pub mod assert_module_sources {
+ //! The reason that we use `cfg=...` and not `#[cfg_attr]` is so that
+ //! the HIR doesn't change as a result of the annotations, which might
+ //! perturb the reuse results.
+ //!
+ //! `#![rustc_expected_cgu_reuse(module="spike", cfg="rpass2", kind="post-lto")]
+ //~^ ERROR unescaped backtick
+ //! allows for doing a more fine-grained check to see if pre- or post-lto data
+ //! was re-used.
+
+ /// `cfg=...
+ //~^ ERROR unescaped backtick
+ pub fn foo() {}
+
+ /// `cfg=... and not `#[cfg_attr]`
+ //~^ ERROR unescaped backtick
+ pub fn bar() {}
+ }
+
+ /// Conceptually, this is like a `Vec<Vec<RWU>>`. But the number of
+ /// RWU`s can get very large, so it uses a more compact representation.
+ //~^ ERROR unescaped backtick
+ pub struct RWUTable {}
+
+ /// Like [Self::canonicalize_query], but preserves distinct universes. For
+ /// example, canonicalizing `&'?0: Trait<'?1>`, where `'?0` is in `U1` and
+ /// `'?1` is in `U3` would be canonicalized to have ?0` in `U1` and `'?1`
+ /// in `U2`.
+ //~^ ERROR unescaped backtick
+ ///
+ /// This is used for Chalk integration.
+ pub fn canonicalize_query_preserving_universes() {}
+
+ /// Note that we used to return `Error` here, but that was quite
+ /// dubious -- the premise was that an error would *eventually* be
+ /// reported, when the obligation was processed. But in general once
+ /// you see an `Error` you are supposed to be able to assume that an
+ /// error *has been* reported, so that you can take whatever heuristic
+ /// paths you want to take. To make things worse, it was possible for
+ /// cycles to arise, where you basically had a setup like `<MyType<$0>
+ /// as Trait>::Foo == $0`. Here, normalizing `<MyType<$0> as
+ /// Trait>::Foo> to `[type error]` would lead to an obligation of
+ /// `<MyType<[type error]> as Trait>::Foo`. We are supposed to report
+ /// an error for this obligation, but we legitimately should not,
+ /// because it contains `[type error]`. Yuck! (See issue #29857 for
+ //~^ ERROR unescaped backtick
+ /// one case where this arose.)
+ pub fn normalize_to_error() {}
+
+ /// you don't want to cache that `B: AutoTrait` or `A: AutoTrait`
+ /// is `EvaluatedToOk`; this is because they were only considered
+ /// ok on the premise that if `A: AutoTrait` held, but we indeed
+ /// encountered a problem (later on) with `A: AutoTrait. So we
+ /// currently set a flag on the stack node for `B: AutoTrait` (as
+ /// well as the second instance of `A: AutoTrait`) to suppress
+ //~^ ERROR unescaped backtick
+ /// caching.
+ pub struct TraitObligationStack;
+
+ /// Extend `scc` so that it can outlive some placeholder region
+ /// from a universe it can't name; at present, the only way for
+ /// this to be true is if `scc` outlives `'static`. This is
+ /// actually stricter than necessary: ideally, we'd support bounds
+ /// like `for<'a: 'b`>` that might then allow us to approximate
+ /// `'a` with `'b` and not `'static`. But it will have to do for
+ //~^ ERROR unescaped backtick
+ /// now.
+ pub fn add_incompatible_universe(){}
+}
+
+/// The Subscriber` may be accessed by calling [`WeakDispatch::upgrade`],
+/// which returns an `Option<Dispatch>`. If all [`Dispatch`] clones that point
+/// at the `Subscriber` have been dropped, [`WeakDispatch::upgrade`] will return
+/// `None`. Otherwise, it will return `Some(Dispatch)`.
+//~^ ERROR unescaped backtick
+///
+/// Returns some reference to this `[`Subscriber`] value if it is of type `T`,
+/// or `None` if it isn't.
+//~^ ERROR unescaped backtick
+///
+/// Called before the filtered [`Layer]'s [`on_event`], to determine if
+/// `on_event` should be called.
+//~^ ERROR unescaped backtick
+///
+/// Therefore, if the `Filter will change the value returned by this
+/// method, it is responsible for ensuring that
+/// [`rebuild_interest_cache`][rebuild] is called after the value of the max
+//~^ ERROR unescaped backtick
+/// level changes.
+pub mod tracing {}
+
+macro_rules! id {
+ ($($tt:tt)*) => { $($tt)* }
+}
+
+id! {
+ /// The Subscriber` may be accessed by calling [`WeakDispatch::upgrade`],
+ //~^ ERROR unescaped backtick
+ //~| ERROR unescaped backtick
+ //~| ERROR unescaped backtick
+ //~| ERROR unescaped backtick
+ /// which returns an `Option<Dispatch>`. If all [`Dispatch`] clones that point
+ /// at the `Subscriber` have been dropped, [`WeakDispatch::upgrade`] will return
+ /// `None`. Otherwise, it will return `Some(Dispatch)`.
+ ///
+ /// Returns some reference to this `[`Subscriber`] value if it is of type `T`,
+ /// or `None` if it isn't.
+ ///
+ /// Called before the filtered [`Layer]'s [`on_event`], to determine if
+ /// `on_event` should be called.
+ ///
+ /// Therefore, if the `Filter will change the value returned by this
+ /// method, it is responsible for ensuring that
+ /// [`rebuild_interest_cache`][rebuild] is called after the value of the max
+ /// level changes.
+ pub mod tracing_macro {}
+}
+
+/// Regression test for <https://github.com/rust-lang/rust/issues/111117>
+pub mod trillium_server_common {
+ /// One-indexed, because the first CloneCounter is included. If you don't
+ /// want the original to count, construct a [``CloneCounterObserver`]
+ /// instead and use [`CloneCounterObserver::counter`] to increment.
+ //~^ ERROR unescaped backtick
+ pub struct CloneCounter;
+
+ /// This is used by the above.
+ pub struct CloneCounterObserver;
+}
diff --git a/tests/rustdoc-ui/unescaped_backticks.stderr b/tests/rustdoc-ui/unescaped_backticks.stderr
new file mode 100644
index 000000000..bf1f18889
--- /dev/null
+++ b/tests/rustdoc-ui/unescaped_backticks.stderr
@@ -0,0 +1,971 @@
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:186:70
+ |
+LL | /// if you want your MIR to be modified by the full MIR pipeline, or `#![custom_mir(dialect =
+ | ^
+ |
+note: the lint level is defined here
+ --> $DIR/unescaped_backticks.rs:1:9
+ |
+LL | #![deny(rustdoc::unescaped_backticks)]
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+help: the closing backtick of an inline code may be missing
+ |
+LL | /// "runtime", phase = "optimized")]` if you don't.
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// if you want your MIR to be modified by the full MIR pipeline, or \`#![custom_mir(dialect =
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:231:13
+ |
+LL | //! `#![rustc_expected_cgu_reuse(module="spike", cfg="rpass2", kind="post-lto")]
+ | ^
+ |
+help: the closing backtick of an inline code may be missing
+ |
+LL | //! `#![rustc_expected_cgu_reuse(module="spike", cfg="rpass2", kind="post-lto")]`
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | //! \`#![rustc_expected_cgu_reuse(module="spike", cfg="rpass2", kind="post-lto")]
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:236:13
+ |
+LL | /// `cfg=...
+ | ^
+ |
+help: the closing backtick of an inline code may be missing
+ |
+LL | /// `cfg=...`
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// \`cfg=...
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:240:42
+ |
+LL | /// `cfg=... and not `#[cfg_attr]`
+ | ^
+ |
+help: a previous inline code might be longer than expected
+ |
+LL | /// `cfg=...` and not `#[cfg_attr]`
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// `cfg=... and not `#[cfg_attr]\`
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:192:91
+ |
+LL | /// Constructs a `TyKind::Error` type and registers a `delay_span_bug` with the given `msg to
+ | ^
+ |
+help: the closing backtick of an inline code may be missing
+ |
+LL | /// Constructs a `TyKind::Error` type and registers a `delay_span_bug` with the given `msg` to
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// Constructs a `TyKind::Error` type and registers a `delay_span_bug` with the given \`msg to
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:201:34
+ |
+LL | /// in `nt_to_tokenstream`
+ | ^
+ |
+help: a previous inline code might be longer than expected
+ |
+LL | /// if we parsed no predicates (e.g. `struct` Foo where {}
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// in `nt_to_tokenstream\`
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:207:62
+ |
+LL | /// that `Option<Symbol>` only takes up 4 bytes, because `newtype_index! reserves
+ | ^
+ |
+help: the closing backtick of an inline code may be missing
+ |
+LL | /// that `Option<Symbol>` only takes up 4 bytes, because `newtype_index!` reserves
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// that `Option<Symbol>` only takes up 4 bytes, because \`newtype_index! reserves
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:215:52
+ |
+LL | /// also avoids the need to import `OpenOptions`.
+ | ^
+ |
+help: a previous inline code might be longer than expected
+ |
+LL | /// you can write `File::with_options().read(true).open("foo.txt")`. This
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// also avoids the need to import `OpenOptions\`.
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:220:46
+ |
+LL | /// `HybridBitSet`. Has no effect if `row` does not exist.
+ | ^
+ |
+help: a previous inline code might be longer than expected
+ |
+LL | /// Subtracts `set` from `row`. `set` can be either `BitSet` or
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// `HybridBitSet`. Has no effect if `row\` does not exist.
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:246:12
+ |
+LL | /// RWU`s can get very large, so it uses a more compact representation.
+ | ^
+ |
+help: the opening backtick of an inline code may be missing
+ |
+LL | /// `RWU`s can get very large, so it uses a more compact representation.
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// RWU\`s can get very large, so it uses a more compact representation.
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:253:15
+ |
+LL | /// in `U2`.
+ | ^
+ |
+help: the opening backtick of a previous inline code may be missing
+ |
+LL | /// `'?1` is in `U3` would be canonicalized to have `?0` in `U1` and `'?1`
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// in `U2\`.
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:270:42
+ |
+LL | /// because it contains `[type error]`. Yuck! (See issue #29857 for
+ | ^
+ |
+help: a previous inline code might be longer than expected
+ |
+LL | /// as Trait>::Foo == $0`. Here, normalizing `<MyType<$0>` as
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// because it contains `[type error]\`. Yuck! (See issue #29857 for
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:280:53
+ |
+LL | /// well as the second instance of `A: AutoTrait`) to suppress
+ | ^
+ |
+help: a previous inline code might be longer than expected
+ |
+LL | /// encountered a problem (later on) with `A:` AutoTrait. So we
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// well as the second instance of `A: AutoTrait\`) to suppress
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:290:40
+ |
+LL | /// `'a` with `'b` and not `'static`. But it will have to do for
+ | ^
+ |
+ = help: the opening or closing backtick of an inline code may be missing
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// `'a` with `'b` and not `'static\`. But it will have to do for
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:299:54
+ |
+LL | /// `None`. Otherwise, it will return `Some(Dispatch)`.
+ | ^
+ |
+help: the opening backtick of a previous inline code may be missing
+ |
+LL | /// The `Subscriber` may be accessed by calling [`WeakDispatch::upgrade`],
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// `None`. Otherwise, it will return `Some(Dispatch)\`.
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:303:13
+ |
+LL | /// or `None` if it isn't.
+ | ^
+ |
+ = help: the opening or closing backtick of an inline code may be missing
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// or `None\` if it isn't.
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:307:14
+ |
+LL | /// `on_event` should be called.
+ | ^
+ |
+help: a previous inline code might be longer than expected
+ |
+LL | /// Called before the filtered [`Layer`]'s [`on_event`], to determine if
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// `on_event\` should be called.
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:312:29
+ |
+LL | /// [`rebuild_interest_cache`][rebuild] is called after the value of the max
+ | ^
+ |
+help: a previous inline code might be longer than expected
+ |
+LL | /// Therefore, if the `Filter` will change the value returned by this
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// [`rebuild_interest_cache\`][rebuild] is called after the value of the max
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:322:5
+ |
+LL | / /// The Subscriber` may be accessed by calling [`WeakDispatch::upgrade`],
+LL | |
+LL | |
+LL | |
+... |
+LL | | /// [`rebuild_interest_cache`][rebuild] is called after the value of the max
+LL | | /// level changes.
+ | |______________________^
+ |
+ = help: the opening backtick of a previous inline code may be missing
+ change: The Subscriber` may be accessed by calling [`WeakDispatch::upgrade`],
+ to this: The `Subscriber` may be accessed by calling [`WeakDispatch::upgrade`],
+ = help: if you meant to use a literal backtick, escape it
+ change: `None`. Otherwise, it will return `Some(Dispatch)`.
+ to this: `None`. Otherwise, it will return `Some(Dispatch)\`.
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:322:5
+ |
+LL | / /// The Subscriber` may be accessed by calling [`WeakDispatch::upgrade`],
+LL | |
+LL | |
+LL | |
+... |
+LL | | /// [`rebuild_interest_cache`][rebuild] is called after the value of the max
+LL | | /// level changes.
+ | |______________________^
+ |
+ = help: the opening or closing backtick of an inline code may be missing
+ = help: if you meant to use a literal backtick, escape it
+ change: or `None` if it isn't.
+ to this: or `None\` if it isn't.
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:322:5
+ |
+LL | / /// The Subscriber` may be accessed by calling [`WeakDispatch::upgrade`],
+LL | |
+LL | |
+LL | |
+... |
+LL | | /// [`rebuild_interest_cache`][rebuild] is called after the value of the max
+LL | | /// level changes.
+ | |______________________^
+ |
+ = help: a previous inline code might be longer than expected
+ change: Called before the filtered [`Layer]'s [`on_event`], to determine if
+ to this: Called before the filtered [`Layer`]'s [`on_event`], to determine if
+ = help: if you meant to use a literal backtick, escape it
+ change: `on_event` should be called.
+ to this: `on_event\` should be called.
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:322:5
+ |
+LL | / /// The Subscriber` may be accessed by calling [`WeakDispatch::upgrade`],
+LL | |
+LL | |
+LL | |
+... |
+LL | | /// [`rebuild_interest_cache`][rebuild] is called after the value of the max
+LL | | /// level changes.
+ | |______________________^
+ |
+ = help: a previous inline code might be longer than expected
+ change: Therefore, if the `Filter will change the value returned by this
+ to this: Therefore, if the `Filter` will change the value returned by this
+ = help: if you meant to use a literal backtick, escape it
+ change: [`rebuild_interest_cache`][rebuild] is called after the value of the max
+ to this: [`rebuild_interest_cache\`][rebuild] is called after the value of the max
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:348:56
+ |
+LL | /// instead and use [`CloneCounterObserver::counter`] to increment.
+ | ^
+ |
+ = help: the opening or closing backtick of an inline code may be missing
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// instead and use [`CloneCounterObserver::counter\`] to increment.
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:11:5
+ |
+LL | /// `
+ | ^
+ |
+ = help: the opening or closing backtick of an inline code may be missing
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// \`
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:18:7
+ |
+LL | /// \`
+ | ^
+ |
+help: the opening backtick of an inline code may be missing
+ |
+LL | /// `\`
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// \\`
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:25:6
+ |
+LL | /// [`link1]
+ | ^
+ |
+help: the closing backtick of an inline code may be missing
+ |
+LL | /// [`link1`]
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// [\`link1]
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:29:11
+ |
+LL | /// [link2`]
+ | ^
+ |
+help: the opening backtick of an inline code may be missing
+ |
+LL | /// [`link2`]
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// [link2\`]
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:33:6
+ |
+LL | /// [`link_long](link_long)
+ | ^
+ |
+help: the closing backtick of an inline code may be missing
+ |
+LL | /// [`link_long`](link_long)
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// [\`link_long](link_long)
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:37:6
+ |
+LL | /// [`broken-link]
+ | ^
+ |
+help: the closing backtick of an inline code may be missing
+ |
+LL | /// [`broken-link`]
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// [\`broken-link]
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:44:8
+ |
+LL | /// <x:`>
+ | ^
+ |
+help: the opening backtick of an inline code may be missing
+ |
+LL | /// `<x:`>
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// <x:\`>
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:54:6
+ |
+LL | /// 🦀`🦀
+ | ^
+ |
+help: the opening backtick of an inline code may be missing
+ |
+LL | /// `🦀`🦀
+ | +
+help: the closing backtick of an inline code may be missing
+ |
+LL | /// 🦀`🦀`
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// 🦀\`🦀
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:58:5
+ |
+LL | /// `foo(
+ | ^
+ |
+help: the closing backtick of an inline code may be missing
+ |
+LL | /// `foo(`
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// \`foo(
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:64:14
+ |
+LL | /// `foo `bar`
+ | ^
+ |
+help: a previous inline code might be longer than expected
+ |
+LL | /// `foo` `bar`
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// `foo `bar\`
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:70:5
+ |
+LL | /// `foo(
+ | ^
+ |
+help: the closing backtick of an inline code may be missing
+ |
+LL | /// not paragraph`
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// \`foo(
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:75:83
+ |
+LL | /// Addition is commutative, which means that add(a, b)` is the same as `add(b, a)`.
+ | ^
+ |
+help: the opening backtick of a previous inline code may be missing
+ |
+LL | /// Addition is commutative, which means that `add(a, b)` is the same as `add(b, a)`.
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// Addition is commutative, which means that add(a, b)` is the same as `add(b, a)\`.
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:79:51
+ |
+LL | /// or even to add a number `n` to 42 (`add(42, b)`)!
+ | ^
+ |
+help: the opening backtick of a previous inline code may be missing
+ |
+LL | /// You could use this function to add 42 to a number `n` (`add(n, 42)`),
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// or even to add a number `n` to 42 (`add(42, b)\`)!
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:83:83
+ |
+LL | /// Addition is commutative, which means that `add(a, b) is the same as `add(b, a)`.
+ | ^
+ |
+help: a previous inline code might be longer than expected
+ |
+LL | /// Addition is commutative, which means that `add(a, b)` is the same as `add(b, a)`.
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// Addition is commutative, which means that `add(a, b) is the same as `add(b, a)\`.
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:87:51
+ |
+LL | /// or even to add a number `n` to 42 (`add(42, n)`)!
+ | ^
+ |
+help: a previous inline code might be longer than expected
+ |
+LL | /// You could use this function to add 42 to a number `n` (`add(n, 42)`),
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// or even to add a number `n` to 42 (`add(42, n)\`)!
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:91:83
+ |
+LL | /// Addition is commutative, which means that `add(a, b)` is the same as add(b, a)`.
+ | ^
+ |
+help: the opening backtick of an inline code may be missing
+ |
+LL | /// Addition is commutative, which means that `add(a, b)` is the same as `add(b, a)`.
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// Addition is commutative, which means that `add(a, b)` is the same as add(b, a)\`.
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:95:50
+ |
+LL | /// or even to add a number `n` to 42 (add(42, n)`)!
+ | ^
+ |
+help: the opening backtick of an inline code may be missing
+ |
+LL | /// or even to add a number `n` to 42 (`add(42, n)`)!
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// or even to add a number `n` to 42 (add(42, n)\`)!
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:99:74
+ |
+LL | /// Addition is commutative, which means that `add(a, b)` is the same as `add(b, a).
+ | ^
+ |
+help: the closing backtick of an inline code may be missing
+ |
+LL | /// Addition is commutative, which means that `add(a, b)` is the same as `add(b, a)`.
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// Addition is commutative, which means that `add(a, b)` is the same as \`add(b, a).
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:103:51
+ |
+LL | /// or even to add a number `n` to 42 (`add(42, n)`)!
+ | ^
+ |
+help: a previous inline code might be longer than expected
+ |
+LL | /// You could use this function to add 42 to a number `n` (`add(n, 42)`),
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// or even to add a number `n` to 42 (`add(42, n)\`)!
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:107:1
+ |
+LL | #[doc = "`"]
+ | ^^^^^^^^^^^^
+ |
+ = help: the opening or closing backtick of an inline code may be missing
+ = help: if you meant to use a literal backtick, escape it
+ change: `
+ to this: \`
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:114:1
+ |
+LL | #[doc = concat!("\\", "`")]
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ |
+ = help: the opening backtick of an inline code may be missing
+ change: \`
+ to this: `\`
+ = help: if you meant to use a literal backtick, escape it
+ change: \`
+ to this: \\`
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:118:1
+ |
+LL | #[doc = "Addition is commutative, which means that add(a, b)` is the same as `add(b, a)`."]
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ |
+ = help: the opening backtick of a previous inline code may be missing
+ change: Addition is commutative, which means that add(a, b)` is the same as `add(b, a)`.
+ to this: Addition is commutative, which means that `add(a, b)` is the same as `add(b, a)`.
+ = help: if you meant to use a literal backtick, escape it
+ change: Addition is commutative, which means that add(a, b)` is the same as `add(b, a)`.
+ to this: Addition is commutative, which means that add(a, b)` is the same as `add(b, a)\`.
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:122:1
+ |
+LL | #[doc = "Addition is commutative, which means that `add(a, b) is the same as `add(b, a)`."]
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ |
+ = help: a previous inline code might be longer than expected
+ change: Addition is commutative, which means that `add(a, b) is the same as `add(b, a)`.
+ to this: Addition is commutative, which means that `add(a, b)` is the same as `add(b, a)`.
+ = help: if you meant to use a literal backtick, escape it
+ change: Addition is commutative, which means that `add(a, b) is the same as `add(b, a)`.
+ to this: Addition is commutative, which means that `add(a, b) is the same as `add(b, a)\`.
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:126:1
+ |
+LL | #[doc = "Addition is commutative, which means that `add(a, b)` is the same as add(b, a)`."]
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ |
+ = help: the opening backtick of an inline code may be missing
+ change: Addition is commutative, which means that `add(a, b)` is the same as add(b, a)`.
+ to this: Addition is commutative, which means that `add(a, b)` is the same as `add(b, a)`.
+ = help: if you meant to use a literal backtick, escape it
+ change: Addition is commutative, which means that `add(a, b)` is the same as add(b, a)`.
+ to this: Addition is commutative, which means that `add(a, b)` is the same as add(b, a)\`.
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:130:1
+ |
+LL | #[doc = "Addition is commutative, which means that `add(a, b)` is the same as `add(b, a)."]
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ |
+ = help: the closing backtick of an inline code may be missing
+ change: Addition is commutative, which means that `add(a, b)` is the same as `add(b, a).
+ to this: Addition is commutative, which means that `add(a, b)` is the same as `add(b, a)`.
+ = help: if you meant to use a literal backtick, escape it
+ change: Addition is commutative, which means that `add(a, b)` is the same as `add(b, a).
+ to this: Addition is commutative, which means that `add(a, b)` is the same as \`add(b, a).
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:135:5
+ |
+LL | /// `foo
+ | ^
+ |
+help: the closing backtick of an inline code may be missing
+ |
+LL | /// `foo`
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// \`foo
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:139:7
+ |
+LL | /// # `(heading
+ | ^
+ |
+help: the closing backtick of an inline code may be missing
+ |
+LL | /// # `(heading`
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// # \`(heading
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:141:17
+ |
+LL | /// ## heading2)`
+ | ^
+ |
+help: the opening backtick of an inline code may be missing
+ |
+LL | /// ## `heading2)`
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// ## heading2)\`
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:144:11
+ |
+LL | /// multi `(
+ | ^
+ |
+help: the closing backtick of an inline code may be missing
+ |
+LL | /// )` heading
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// multi \`(
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:150:10
+ |
+LL | /// para)`(graph
+ | ^
+ |
+help: the opening backtick of an inline code may be missing
+ |
+LL | /// `para)`(graph
+ | +
+help: the closing backtick of an inline code may be missing
+ |
+LL | /// para)`(graph`
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// para)\`(graph
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:153:10
+ |
+LL | /// para)`(graph2
+ | ^
+ |
+help: the opening backtick of an inline code may be missing
+ |
+LL | /// `para)`(graph2
+ | +
+help: the closing backtick of an inline code may be missing
+ |
+LL | /// para)`(graph2`
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// para)\`(graph2
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:156:12
+ |
+LL | /// 1. foo)`
+ | ^
+ |
+help: the opening backtick of an inline code may be missing
+ |
+LL | /// 1. `foo)`
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// 1. foo)\`
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:158:8
+ |
+LL | /// 2. `(bar
+ | ^
+ |
+help: the closing backtick of an inline code may be missing
+ |
+LL | /// 2. `(bar`
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// 2. \`(bar
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:160:11
+ |
+LL | /// * baz)`
+ | ^
+ |
+help: the opening backtick of an inline code may be missing
+ |
+LL | /// * `baz)`
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// * baz)\`
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:162:7
+ |
+LL | /// * `(quux
+ | ^
+ |
+help: the closing backtick of an inline code may be missing
+ |
+LL | /// * `(quux`
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// * \`(quux
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:165:5
+ |
+LL | /// `#![this_is_actually_an_image(and(not), an = "attribute")]
+ | ^
+ |
+help: the closing backtick of an inline code may be missing
+ |
+LL | /// `#`![this_is_actually_an_image(and(not), an = "attribute")]
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// \`#![this_is_actually_an_image(and(not), an = "attribute")]
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:168:62
+ |
+LL | /// #![this_is_actually_an_image(and(not), an = "attribute")]`
+ | ^
+ |
+help: the opening backtick of an inline code may be missing
+ |
+LL | /// `#![this_is_actually_an_image(and(not), an = "attribute")]`
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// #![this_is_actually_an_image(and(not), an = "attribute")]\`
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:173:7
+ |
+LL | /// | `table( | )head` |
+ | ^
+ |
+help: the closing backtick of an inline code may be missing
+ |
+LL | /// | `table(` | )head` |
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// | \`table( | )head` |
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:173:22
+ |
+LL | /// | `table( | )head` |
+ | ^
+ |
+help: the opening backtick of an inline code may be missing
+ |
+LL | /// | `table( | `)head` |
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// | `table( | )head\` |
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:177:12
+ |
+LL | /// | table`( | )`body |
+ | ^
+ |
+help: the opening backtick of an inline code may be missing
+ |
+LL | /// | `table`( | )`body |
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// | table\`( | )`body |
+ | +
+
+error: unescaped backtick
+ --> $DIR/unescaped_backticks.rs:177:18
+ |
+LL | /// | table`( | )`body |
+ | ^
+ |
+help: the opening backtick of an inline code may be missing
+ |
+LL | /// | table`( | `)`body |
+ | +
+help: the closing backtick of an inline code may be missing
+ |
+LL | /// | table`( | )`body` |
+ | +
+help: if you meant to use a literal backtick, escape it
+ |
+LL | /// | table`( | )\`body |
+ | +
+
+error: aborting due to 64 previous errors
+