about summary refs log tree commit diff
path: root/src/test
AgeCommit message (Collapse)AuthorLines
2022-11-01Rollup merge of #103837 - ↵Manish Goregaokar-225/+162
GuillaumeGomez:migrate-sidebar-links-color-gui-test, r=notriddle Migrate sidebar-links-color GUI test to functions r? `@notriddle`
2022-11-01Rollup merge of #103781 - JakobDegen:mir-opt-tidy, r=jyn514Manish Goregaokar-404/+0
Detect unused files in `src/test/mir-opt` and error on them in tidy. Closes #97564 . Determining which files are generated by a given mir opt test is somewhat difficult. Because of this, we extract the logic for doing it out into a common crate that both compiletest and tidy can depend on. This avoids making compiletest a dependency of tidy which would negatively impact compile times for tidy. Testing for this is that it catches 5 files that violated this lint (and removes them).
2022-11-01Rollup merge of #103575 - Xiretza:suggestions-style-attr, r=davidtwcoManish Goregaokar-78/+229
Change #[suggestion_*] attributes to use style="..." As discussed [on Zulip](https://rust-lang.zulipchat.com/#narrow/stream/336883-i18n/topic/.23100717.20tool_only_span_suggestion), this changes `#[(multipart_)suggestion_{short,verbose,hidden}(...)]` attributes to plain `#[(multipart_)suggestion(...)]` attributes with a `style = "{short,verbose,hidden}"` parameter. It also adds a new style, `tool-only`, that corresponds to `tool_only_span_suggestion`/`tool_only_multipart_suggestion` and causes the suggestion to not be shown in human-readable output at all. Best reviewed commit-by-commit, there's a bit of noise in there. cc #100717 `@compiler-errors` r? `@davidtwco`
2022-11-01Don't remap early-bound RPITIT regions that originate from implMichael Goulet-0/+32
2022-11-01fix(generic_const_exprs): Fix predicate inheritance for children of opaque typesZhixing Zhang-0/+33
2022-11-01Auto merge of #103217 - mejrs:track, r=eholkbors-0/+180
Track where diagnostics were created. This implements the `-Ztrack-diagnostics` flag, which uses `#[track_caller]` to track where diagnostics are created. It is meant as a debugging tool much like `-Ztreat-err-as-bug`. For example, the following code... ```rust struct A; struct B; fn main(){ let _: A = B; } ``` ...now emits the following error message: ``` error[E0308]: mismatched types --> src\main.rs:5:16 | 5 | let _: A = B; | - ^ expected struct `A`, found struct `B` | | | expected due to this -Ztrack-diagnostics: created at compiler\rustc_infer\src\infer\error_reporting\mod.rs:2275:31 ```
2022-11-01Format dyn Trait better in type_name intrinsicMichael Goulet-4/+1
2022-11-01Remove unneeded "rustdoc-preferred-dark-theme" settingGuillaume Gomez-1/+0
2022-11-01Migrate sidebar-links-color GUI test to functionsGuillaume Gomez-224/+162
2022-11-01Rollup merge of #103817 - notriddle:notriddle/attribute-css, r=GuillaumeGomezDylan DPC-9/+9
rustdoc: rename syntax highlighting CSS class `attribute` to `attr` Link classes use the abbreviation `attr` ... https://github.com/rust-lang/rust/blob/2afca78a0b03db144c5d8b9f8868feebfe096309/src/librustdoc/html/static/css/rustdoc.css#L255-L259 ... so why does syntax highlighting use the full word? https://github.com/rust-lang/rust/blob/2afca78a0b03db144c5d8b9f8868feebfe096309/src/librustdoc/html/static/css/rustdoc.css#L1095-L1097
2022-11-01Rollup merge of #103760 - petrochenkov:macimp, r=cjgillotDylan DPC-7/+28
resolve: Turn the binding from `#[macro_export]` into a proper `Import` Continuation of https://github.com/rust-lang/rust/pull/91795. ```rust #[macro_export] macro_rules! m { /*...*/ } ``` is desugared to something like ```rust macro_rules! m { /*...*/ } // Non-modularized macro_rules item pub use m; // It's modularized reexport ``` This PR adjusts the internal representation to better match this model.
2022-11-01Rollup merge of #84022 - Aaron1011:remove-derive-res-fallback, r=petrochenkovDylan DPC-100/+36
Make PROC_MACRO_DERIVE_RESOLUTION_FALLBACK a hard error r? `@ghost`
2022-11-01Print valid `--print` requests if request is invalidnils-0/+6
When someone makes a typo, it can be useful to see the valid options. This is also useful if someone wants to find out about all the options.
2022-11-01Test that target feature mix up with homogeneous floats is soundLoïc BRANSTETT-0/+192
This is basically is ripoff of src/test/ui/simd/target-feature-mixup.rs but for floats and without #[repr(simd)]
2022-11-01Rollup merge of #103759 - cjgillot:adt-collect, r=davidtwcoDylan DPC-3/+3
Use `adt_def` during type collection. This removes a wrapper which is close to what `adt_def` does.
2022-11-01Rollup merge of #103706 - zbyrn:issue-101637-fix, r=estebankDylan DPC-19/+111
Fix E0433 No Typo Suggestions Fixes #48676 Fixes #87791 Fixes #96625 Fixes #95462 Fixes #101637 Follows up PR #72923 Several open issues refer to the problem that E0433 does not suggest typos like other errors normally do. This fix augments the implementation of PR #72923. **Background** When the path of a function call, e.g. `Struct::foo()`, involves names that cannot be resolved, there are two errors that could be emitted by the compiler: - If `Struct` is not found, it is ``E0433: failed to resolve: use of undeclared type `Struct` ``. - If `foo` is not found in `Struct`, it is ``E0599: no function or associated item named `foo` found for struct `Struct` in the current scope`` When a name is used as a type, `e.g. fn foo() -> Struct`, and the name cannot be resolved, it is ``E0412: cannot find type `Struct` in this scope``. Before #72923, `E0433` does not implement any suggestions, and the PR introduces suggestions for missing `use`s. When a resolution error occurs in the path of a function call, it tries to smart resolve just the type part of the path, e.g. `module::Struct` of a call to `module::Struct::foo()`. However, along with the suggestions, the smart-resolve function will report `E0412` since it only knows that it is a type that we cannot resolve instead of being a part of the path. So, the original implementation swap out `E0412` errors returned by the smart-resolve function with the real `E0433` error, but keeps the "missing `use`" suggestions to be reported to the programmer. **Issue** The current implementation only reports if there are "missing `use`" suggestions returned by the smart-resolve function; otherwise, it would fall back the normal reporting, which does not emit suggestions. But the smart-resolve function could also produce typo suggestions, which are omitted currently. Also, it seems like that not all info has been swapped out when there are missing suggestions. The error message underlining the name in the snippet still says ``not found in this scope``, which is a `E0412` messages, if there are `use` suggestions, but says the normal `use of undeclared type` otherwise. **Fixes** This fix swaps out all fields in `Diagnostic` returned by the smart-resolve function except for `suggestions` with the current error, and merges the `suggestions` of the returned error and that of the current error together. If there are `use` suggestions, the error is saved to `use_injection` to be reported at the end; otherwise, the error is emitted immediately as `Resolver::report_error` does. Some tests are updated to use the correct underlining error messages, and one additional test for typo suggestion is added to the test suite. r? rust-lang/diagnostics
2022-11-01Rollup merge of #103584 - ouz-a:issue-102303, r=oli-obkDylan DPC-15/+69
Remove bounds check when array is indexed by enum As the title says, this reverts the behavior introduced with 1.64. Fixes #102303 r? `@oli-obk`
2022-11-01Rollup merge of #103061 - Amanieu:rewrite_alloc_error_handler, r=bjorn3Dylan DPC-31/+135
Rewrite implementation of `#[alloc_error_handler]` The new implementation doesn't use weak lang items and instead changes `#[alloc_error_handler]` to an attribute macro just like `#[global_allocator]`. The attribute will generate the `__rg_oom` function which is called by the compiler-generated `__rust_alloc_error_handler`. If no `__rg_oom` function is defined in any crate then the compiler shim will call `__rdl_oom` in the alloc crate which will simply panic. This also fixes link errors with `-C link-dead-code` with `default_alloc_error_handler`: `__rg_oom` was previously defined in the alloc crate and would attempt to reference the `oom` lang item, even if it didn't exist. This worked as long as `__rg_oom` was excluded from linking since it was not called. This is a prerequisite for the stabilization of `default_alloc_error_handler` (#102318).
2022-11-01fix #103751: Fix capacity overflow issue during transmutability checkyukang-0/+53
2022-10-31Detect unused files in `src/test/mir-opt` and error on them in tidy.Jakob Degen-404/+0
2022-11-01Rollup merge of #103799 - GuillaumeGomez:search-index-tuple-struct-field, ↵Yuki Okushi-0/+18
r=notriddle Remove generation of tuple struct fields in the search index This comes from [this discussion](https://github.com/rust-lang/rust/pull/103710) as they're not very useful. r? `@notriddle`
2022-11-01Rollup merge of #103793 - notriddle:notriddle/rustdoc-toggle-in-impl-items, ↵Yuki Okushi-0/+34
r=GuillaumeGomez rustdoc: add margins to all impl-item toggles, not just methods Fixes #103782 ## Before ![image](https://user-images.githubusercontent.com/1593513/198943087-8cab8b25-2092-49d6-89b4-caa2989dedf0.png) ## After ![image](https://user-images.githubusercontent.com/1593513/198943111-bc08c2d6-f058-4362-b999-0caf09eb93bf.png)
2022-11-01Rollup merge of #103788 - chenyukang:yukang/fix-ice-103783, r=compiler-errorsYuki Okushi-0/+33
Fix ICE in checking transmutability of NaughtyLenArray Fixes #103783
2022-11-01Rollup merge of #103772 - compiler-errors:better-strict-coherence-err, ↵Yuki Okushi-0/+17
r=davidtwco better error for `rustc_strict_coherence` misuse Fixes #103753
2022-11-01Rollup merge of #103749 - est31:reduce_irrefutable_let_else_span, r=cjgillotYuki Okushi-5/+18
Reduce span of let else irrefutable_let_patterns warning Huge spans aren't good for IDE users as they underline constructs that are possibly multiline. Similar PR to #90761 which did the same for the `unused_macros` lint.
2022-11-01Fix ICE in default impl error reportingMichael Goulet-0/+49
2022-11-01Remap RPITIT substs properlyMichael Goulet-0/+24
2022-11-01Check for substs compatibility for RPITITsMichael Goulet-0/+29
2022-10-31Collect late-bound regions from all closure parents in `closure_mapping`Michael Goulet-0/+47
2022-10-31testsMichael Goulet-0/+16
2022-10-31rustdoc: remove left border from `.src-line-numbers > a`Michael Howell-0/+5
2022-10-31rustdoc: change `.src-line-numbers > span` to `.src-line-numbers > a`Michael Howell-26/+45
This allows people to treat them like real links, such as right-click to copy URL, and makes the line numbers in a scraped example work at all, when before this commit was added, they had the clickable pointer cursor but did not actually do anything when clicked.
2022-10-31rustdoc: rename syntax highlighting CSS class `attribute` to `attr`Michael Howell-9/+9
Link classes use the abbreviation `attr`, so why shouldn't syntax highlighting?
2022-10-31Auto merge of #103795 - thomcc:untest, r=Mark-Simulacrumbors-0/+25
Include both benchmarks and tests in the numbers given to `TeFiltered{,Out}` Fixes #103794 `#[bench]` is broken on nightly without this, sadly. It apparently has no test coverage. In addition to manually testing, I've added a run-make smokecheck for this (which would have caught the issue), but it would be nice to have a better way to test, err, libtest. For now we should get this in ASAP IMO
2022-10-31resolve: Turn the binding from `#[macro_export]` into a proper `Import`Vadim Petrochenkov-7/+28
2022-10-31Specialize PartialEq for Option<num::NonZero*> and Option<ptr::NonNull>clubby789-0/+34
2022-10-31Rewrite implementation of `#[alloc_error_handler]`Amanieu d'Antras-31/+135
The new implementation doesn't use weak lang items and instead changes `#[alloc_error_handler]` to an attribute macro just like `#[global_allocator]`. The attribute will generate the `__rg_oom` function which is called by the compiler-generated `__rust_alloc_error_handler`. If no `__rg_oom` function is defined in any crate then the compiler shim will call `__rdl_oom` in the alloc crate which will simply panic. This also fixes link errors with `-C link-dead-code` with `default_alloc_error_handler`: `__rg_oom` was previously defined in the alloc crate and would attempt to reference the `oom` lang item, even if it didn't exist. This worked as long as `__rg_oom` was excluded from linking since it was not called. This is a prerequisite for the stabilization of `default_alloc_error_handler` (#102318).
2022-10-31Add more track_callermejrs-1/+28
2022-10-31rustdoc: add test case for associated type marginsMichael Howell-0/+34
2022-10-31[debuginfo] Make debuginfo type names for slices and str consistent.Michael Woerister-29/+29
Before this PR, the compiler would emit the debuginfo name `slice$<T>` for all kinds of slices, regardless of whether they are behind a reference or not and regardless of the kind of reference. As a consequence, the types `Foo<&[T]>`, `Foo<[T]>`, and `Foo<&mut [T]>` would end up with the same type name `Foo<slice$<T> >` in debuginfo, making it impossible to disambiguate between them by name. Similarly, `&str` would get the name `str` in debuginfo, so the debuginfo name for `Foo<str>` and `Foo<&str>` would be the same. In contrast, `*const [bool]` and `*mut [bool]` would be `ptr_const$<slice$<bool> >` and `ptr_mut$<slice$<bool> >`, i.e. the encoding does not lose information about the type. This PR removes all special handling for slices and `str`. The types `&[bool]`, `&mut [bool]`, and `&str` thus get the names `ref$<slice2$<bool> >`, `ref_mut$<slice2$<bool> >`, and `ref$<str$>` respectively -- as one would expect.
2022-10-31Add `ignore-cross-compile` to the `#[bench]` smoketest, and move it back to ↵Thom Chiovoloni-1/+3
run-make
2022-10-31move libtest bench smoketest to run-make-fulldepsThom Chiovoloni-1/+1
2022-10-31Use AdtDef to check enum.Camille GILLOT-3/+3
2022-10-31smoketest that libtest doesn't panic in `#[bench]`Thom Chiovoloni-0/+23
2022-10-31Remove bounds check with enum castouz-a-15/+69
2022-10-31Add test for tuple struct field generation in search indexGuillaume Gomez-0/+18
2022-10-31Rollup merge of #103338 - l4l:enum-unreachable-pub, r=nagisaDylan DPC-0/+45
Fix unreachable_pub suggestion for enum with fields Resolves #103317
2022-10-31Auto merge of #103787 - notriddle:rollup-q1vmxsb, r=notriddlebors-136/+312
Rollup of 8 pull requests Successful merges: - #97971 (Enable varargs support for calling conventions other than C or cdecl ) - #101428 (Add mir building test directory) - #101944 (rustdoc: clean up `#toggle-all-docs`) - #102101 (check lld version to choose correct option to disable multi-threading in tests) - #102689 (Add a tier 3 target for the Sony PlayStation 1) - #103746 (rustdoc: add support for incoherent impls on structs and traits) - #103758 (Add regression test for reexports in search results) - #103764 (All verbosity checks in `PrettyPrinter` now go through `PrettyPrinter::should_print_verbose`) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
2022-10-30Rollup merge of #103764 - SarthakSingh31:issue-94187-2, r=compiler-errorsMichael Howell-5/+11
All verbosity checks in `PrettyPrinter` now go through `PrettyPrinter::should_print_verbose` Follow-up to #103428. That pr only partially fixed #94187. In some cases (like closures) `std::any::type_name` was still producing a different output when `-Zverbose` was enabled. This pr fixes those cases and adds a new function `PrettyPrinter::should_print_verbose`. This function should always be used over `self.tcx().sess.verbose()` inside a `impl PrettyPrinter`. Maybe closes #94187 now. r? ``@compiler-errors``
2022-10-30Rollup merge of #103758 - GuillaumeGomez:reexports-search-result-test, ↵Michael Howell-0/+28
r=notriddle Add regression test for reexports in search results Fixes https://github.com/rust-lang/rust/issues/86337. r? ``@notriddle``