about summary refs log tree commit diff
path: root/src/test/rustdoc
AgeCommit message (Collapse)AuthorLines
2020-07-16Support intra-doc links on trait and module re-exportsJoshua Nelson-0/+46
Trait implementations are treated the same as modules for the purposes of intra-doc links.
2020-07-16Support intra-doc links on macro re-exportsJoshua Nelson-0/+42
This includes both `macro_rules!` and proc-macros.
2020-07-16rand -> my_randJoshua Nelson-4/+4
This fixes a failure in stage2 rustdoc tests.
2020-07-16 #![deny(intra_doc_resolution_failure)]Joshua Nelson-0/+12
2020-07-16Add test for submodules in inner crateJoshua Nelson-3/+20
2020-07-16Add test for documenting the re-exportJoshua Nelson-0/+13
2020-07-16Add test for re-exportsJoshua Nelson-0/+28
I had a hard time getting this to work without the `extern crate`, suggestions are welcome.
2020-07-16Add tests for basic intra-doc linksJoshua Nelson-0/+11
2020-07-16Rollup merge of #74370 - Manishearth:re-spotlight, r=GuillaumeGomezManish Goregaokar-0/+36
Reintroduce spotlight / "important traits" feature (Reopened version of https://github.com/rust-lang/rust/pull/74111 because Github is broken, see discussion there) Fixes https://github.com/rust-lang/rust/issues/73785 This PR reintroduces the "spotlight" ("important traits") feature. A couple changes have been made: As there were concerns about its visibility, it has been moved to be next to the return type, as opposed to being on the side. It also no longer produces a modal, it shows the traits on hover, and it can be clicked on to pin the hover bubble. ![image](https://user-images.githubusercontent.com/1617736/86674555-a82d2600-bfad-11ea-9a4a-a1a9ffd66ae5.png) ![image](https://user-images.githubusercontent.com/1617736/86674533-a1061800-bfad-11ea-9e8a-c62ad86ed0d7.png) It also works fine on mobile: ![image](https://user-images.githubusercontent.com/1617736/86674638-bda25000-bfad-11ea-8d8d-1798b608923e.png)
2020-07-16Revert "Remove "important traits" feature"Manish Goregaokar-0/+36
This reverts commit 1244ced9580b942926afc06815e0691cf3f4a846.
2020-07-15Add test case for #65863Joshua Nelson-0/+15
2020-07-15Don't ICE on errors in function returning impl traitJoshua Nelson-0/+14
Instead, report the error. This emits the errors on-demand, without special-casing `impl Trait`, so it should catch all ICEs of this kind, including ones that haven't been found yet. Since the error is emitted during type-checking there is less info about the error; see comments in the code for details. - Add test case for -> impl Trait - Add test for impl trait with alias - Move EmitIgnoredResolutionErrors to rustdoc This makes `fn typeck_item_bodies` public, which is not desired behavior. That change should be removed once https://github.com/rust-lang/rust/pull/74070 is merged. - Don't visit nested closures twice
2020-07-15Add `rustdoc` tests from #72088Dylan MacKenzie-0/+16
2020-07-15Add an option not to report resolution errors for rustdocJoshua Nelson-3/+1
- Remove unnecessary `should_loop` variable - Report errors for trait implementations These should give resolution errors because they are visible outside the current scope. Without these errors, rustdoc will give ICEs: ``` thread 'rustc' panicked at 'attempted .def_id() on invalid res: Err', /home/joshua/src/rust/src/libstd/macros.rs:16:9 15: rustc_hir::def::Res<Id>::def_id at /home/joshua/src/rust/src/librustc_hir/def.rs:382 16: rustdoc::clean::utils::register_res at src/librustdoc/clean/utils.rs:627 17: rustdoc::clean::utils::resolve_type at src/librustdoc/clean/utils.rs:587 ``` - Add much more extensive tests + fn -> impl -> fn + fn -> impl -> fn -> macro + errors in function parameters + errors in trait bounds + errors in the type implementing the trait + unknown bounds for the type + unknown types in function bodies + errors generated by macros - Use explicit state instead of trying to reconstruct it from random info - Use an enum instead of a boolean - Add example of ignored error
2020-07-15Don't run everybody_loops for rustdocJoshua Nelson-1/+3
Instead, ignore resolution errors that occur in item bodies. The reason this can't ignore item bodies altogether is because `const fn` could be used in generic types, for example `[T; f()]`
2020-07-15Don't render unstable for rustc docsLzu Tao-4/+6
As rustc is permanently unstable. So marking every items with unstable is essential useless.
2020-07-11rustdoc: insert newlines between attributesAndy Russell-2/+2
2020-07-09Rollup merge of #74107 - nbdd0121:rustdoc, r=GuillaumeGomezManish Goregaokar-0/+21
Hide `&mut self` methods from Deref in sidebar if there are no `DerefMut` impl for the type. This partially addresses #74083.
2020-07-09Rollup merge of #74077 - sethp:docs/fix-intra-doc-primitive-link, r=jyn514Manish Goregaokar-0/+71
Use relative path for local links to primitives Else, links to `char::foo` would point into `/path/to/src/libcore/std/primitive.char.html#method.foo`. Split out from #73804.
2020-07-09Add testManish Goregaokar-1/+3
2020-07-08Avoid running test on Windows platformsSeth Pellegrino-0/+1
There don't seem to be any other compiletests that are 1) building a standalone "no_core" create and then 2) trying to link against it. There seems to be a platform-specific limitation in doing so: ``` 2020-07-08T16:07:42.9419409Z = note: Creating library D:\a\rust\rust\build\i686-pc-windows-msvc\test\rustdoc\intra-link-prim-methods-external-core\auxiliary\my_core.dll.lib and object D:\a\rust\rust\build\i686-pc-windows-msvc\test\rustdoc\intra-link-prim-methods-external-core\auxiliary\my_core.dll.exp 2020-07-08T16:07:42.9419810Z LINK : error LNK2001: unresolved external symbol __DllMainCRTStartup@12 2020-07-08T16:07:42.9420032Z D:\a\rust\rust\build\i686-pc-windows-msvc\test\rustdoc\intra-link-prim-methods-external-core\auxiliary\my_core.dll : fatal error LNK1120: 1 unresolved externals ``` Possibly this could be resolved by adding a `__DllMainCRTStartup` or `__DllMainCRTStartup@12` symbol in an architecture- and platform-specific way.
2020-07-08Apply #![crate_type = "rlib"] directly to the linkerSeth Pellegrino-0/+3
2020-07-07ignore-tidy-linelength for @has assertionsSeth Pellegrino-0/+5
2020-07-07Assert current behavior for linksSeth Pellegrino-0/+12
For the two of these tests that have a local `char` to link to, this behavior isn't what's expected, but is what's happening presently.
2020-07-06build extern docs as wellSeth Pellegrino-0/+1
2020-07-06Two new rustdoc tests for intra linksSeth Pellegrino-0/+49
They both produce less-than-desirable output (links going to docs.rust-lang.org), but I haven't figured out yet how to assert about them properly.
2020-07-06Rollup merge of #74078 - jyn514:lut, r=ManishearthManish Goregaokar-0/+12
Always resolve type@primitive as a primitive, not a module Previously, if there were a module in scope with the same name as the primitive, that would take precedence. Coupled with https://github.com/rust-lang/rust/issues/58699, this made it impossible to link to the primitive when that module was in scope. This approach could be extended so that `struct@foo` would no longer resolve to any type, etc. However, it could not be used for glob imports: ```rust pub mod foo { pub struct Bar; } pub enum Bar {} use foo::*; // This is expected to link to `inner::Bar`, but instead it will link to the enum. /// Link to [struct@Bar] pub struct MyDocs; ``` The reason for this is that this change does not affect the resolution algorithm of rustc_resolve at all. The only reason we could special-case primitives is because we have a list of all possible primitives ahead of time. Closes https://github.com/rust-lang/rust/issues/74063 r? @Manishearth
2020-07-06Add test for issue 74083Gary Guo-0/+21
2020-07-05Always resolve type@primitive as a primitive, not a moduleJoshua Nelson-0/+12
Previously, if there were a module in scope with the same name as the primitive, that would take precedence. Coupled with https://github.com/rust-lang/rust/issues/58699, this made it impossible to link to the primitive when that module was in scope. This approach could be extended so that `struct@foo` would no longer resolve to any type, etc. However, it could not be used for glob imports: ```rust pub mod foo { pub struct Bar; } pub enum Bar {} use foo::*; // This is expected to link to `inner::Bar`, but instead it will link to the enum. /// Link to [struct@Bar] pub struct MyDocs; ``` The reason for this is that this change does not affect the resolution algorithm of rustc_resolve at all. The only reason we could special-case primitives is because we have a list of all possible primitives ahead of time.
2020-07-02Remove render-redirect-pages option in rustdocGuillaume Gomez-11/+0
2020-07-02Update rustdoc testsGuillaume Gomez-28/+23
2020-06-26Show the values and computation that would overflow a const evaluation or ↵Oliver Scherer-2/+1
propagation
2020-06-19Rollup merge of #73452 - matthewjasper:auto-rec, r=nikomatsakisManish Goregaokar-0/+35
Unify region variables when projecting associated types This is required to avoid cycles when evaluating auto trait predicates. Notably, this is required to be able add Chalk types to `CtxtInterners` for `cfg(parallel_compiler)`. r? @nikomatsakis
2020-06-19Rollup merge of #73044 - tmiasko:compiletest-san, r=nikomatsakisRalf Jung-0/+1
compiletest: Add directives to detect sanitizer support Add needs-sanitizer-{address,leak,memory,thread} directive indicating that test requires target with support for specific sanitizer. This is an addition to the existing needs-sanitizer-support directive indicating that test requires a sanitizer runtime library. The existing needs-sanitizer-support directive could be incorporated into the new ones, but I decided to retain it, since it enables running sanitizer codegen tests even when building of sanitizer runtime libraries is disabled.
2020-06-18Add test for overflow when finding auto-trait impls in RustdocAaron Hill-0/+35
2020-06-18Removed trailing whitespaceJake Degen-1/+1
2020-06-18Added tooltip for should_panic code examples.Jake Degen-0/+5
Previously, compile_fail and ignore code examples displayed a tooltip indicating this in the documentation. This tooltip has now also been added to should_panic examples.
2020-06-15Auto merge of #72080 - matthewjasper:uniform-impl-trait, r=nikomatsakisbors-0/+31
Clean up type alias impl trait implementation - Removes special case for top-level impl trait - Removes associated opaque types - Forbid lifetime elision in let position impl trait. This is consistent with the behavior for inferred types. - Handle lifetimes in type alias impl trait more uniformly with other parameters cc #69323 cc #63063 Closes #57188 Closes #62988 Closes #69136 Closes #73061
2020-06-13compiletest: Add directives to detect sanitizer supportTomasz Miąsko-0/+1
Add needs-sanitizer-{address,leak,memory,thread} directive indicating that test requires target with support for specific sanitizer. This is an addition to the existing needs-sanitizer-support directive indicating that test requires a sanitizer runtime library.
2020-06-12Rollup merge of #72906 - lzutao:migrate-numeric-assoc-consts, r=dtolnayDylan DPC-4/+4
Migrate to numeric associated consts The deprecation PR is #72885 cc #68490 cc rust-lang/rfcs#2700
2020-06-11Add more tests for type alias impl TraitMatthew Jasper-0/+31
2020-06-10Add tests for macro@ and derive@Manish Goregaokar-1/+7
2020-06-10Avoid collisions between traits and their derive macrosManish Goregaokar-1/+10
2020-06-10Migrate to numeric associated constsLzu Tao-4/+4
2020-06-09Add test for proc macro resolution in intra doc linksManish Goregaokar-0/+47
2020-05-22Allow using `Self::` in docTymoteusz Jankowski-0/+88
2020-05-19Make intra-link resolve links for both trait and impl itemsTymoteusz Jankowski-0/+19
2020-05-13Make intra links work inside trait impl blockTymoteusz Jankowski-0/+35
2020-05-12Rollup merge of #71928 - mibac138:strikethrough, r=GuillaumeGomezDylan DPC-0/+6
Add strikethrough support to rustdoc Implements uncontroversial part of #71183. r? @GuillaumeGomez
2020-05-08Add test for strikethrough in rustdocmibac138-0/+6