rust/tests/ui/hygiene
Matthias Krüger ea6daca3cb
Rollup merge of #118234 - tgross35:type_name_of_value, r=dtolnay
Stabilize `type_name_of_val`

Make the following API stable:

```rust
// in core::any
pub fn type_name_of_val<T: ?Sized>(_val: &T) -> &'static str
```

This is a convenience method to get the type name of a value, as opposed to `type_name` that takes a type as a generic.

Const stability is not added because this relies on `type_name` which is also not const. That has a blocking issue https://github.com/rust-lang/rust/issues/97156.

Wording was also changed to direct most of the details to `type_name` so we don't have as much duplicated documentation.

Fixes tracking issue #66359.

There were two main concerns in the tracking issue:

1. Naming: `type_name_of` and `type_name_of_val` seem like the only mentioned options. Differences in opinion here come from `std::mem::{size_of, align_of, size_of_val, align_of_val}`. This PR leaves the name as `type_name_of_val`, but I can change if desired since it is pretty verbose.
2. What this displays for `&dyn`: I don't think that having `type_name_of_val` function resolve those is worth the headache it would be, see https://github.com/rust-lang/rust/issues/66359#issuecomment-1718480774 for some workarounds. I also amended the docs wording to leave it open-ended, in case we have means to change that behavior in the future.

``@rustbot`` label -T-libs +T-libs-api +needs-fcp
r? libs-api
2023-12-15 20:19:53 +01:00
..
auxiliary remove invalid ignore-pretty 2023-04-03 09:24:11 +02:00
arguments.rs remove invalid ignore-pretty 2023-04-03 09:24:11 +02:00
arguments.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
assoc_item_ctxt.rs remove invalid ignore-pretty 2023-04-03 09:24:11 +02:00
assoc_item_ctxt.stderr remove invalid ignore-pretty 2023-04-03 09:24:11 +02:00
assoc_ty_bindings.rs remove invalid ignore-pretty 2023-04-03 09:24:11 +02:00
cross-crate-codegen-attrs.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
cross-crate-define-and-use.rs Stabilize type_name_of_val 2023-12-05 14:49:09 -05:00
cross-crate-fields.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
cross-crate-glob-hygiene.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
cross-crate-glob-hygiene.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
cross-crate-methods.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
cross-crate-name-collision.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
cross-crate-name-hiding-2.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
cross-crate-name-hiding-2.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
cross-crate-name-hiding.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
cross-crate-name-hiding.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
cross-crate-redefine.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
cross-crate-redefine.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
cross-crate-variants.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
dollar-crate-modern.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
duplicate_lifetimes.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
duplicate_lifetimes.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
eager-from-opaque-2.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
eager-from-opaque.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
expansion-info-reset.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
expansion-info-reset.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
extern-prelude-from-opaque-fail-2018.rs Add filter with next segment while lookup typo for path 2023-07-07 09:00:50 +08:00
extern-prelude-from-opaque-fail-2018.stderr When encountering struct fn call literal with private fields, suggest all builders 2023-11-19 17:47:41 +00:00
extern-prelude-from-opaque-fail.rs Add filter with next segment while lookup typo for path 2023-07-07 09:00:50 +08:00
extern-prelude-from-opaque-fail.stderr adjust smart_resolve_partial_mod_path_errors 2023-07-07 10:19:30 +08:00
fields-definition.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
fields-definition.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
fields-move.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
fields-move.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
fields-numeric-borrowck.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
fields-numeric-borrowck.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
fields.rs remove invalid ignore-pretty 2023-04-03 09:24:11 +02:00
fields.stderr remove invalid ignore-pretty 2023-04-03 09:24:11 +02:00
for-loop.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
for-loop.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
format-args.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
generate-mod.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
generate-mod.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
generic_params.rs remove invalid ignore-pretty 2023-04-03 09:24:11 +02:00
globs.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
globs.stderr Special-case item attributes in the suggestion output 2023-04-12 22:50:10 +00:00
hir-res-hygiene.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
hygiene-dodging-1.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
hygiene.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
hygienic-label-1.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
hygienic-label-1.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
hygienic-label-2.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
hygienic-label-2.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
hygienic-label-3.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
hygienic-label-3.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
hygienic-label-4.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
hygienic-label-4.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
hygienic-labels-in-let.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
hygienic-labels.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
impl_items-2.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
impl_items-2.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
impl_items.rs remove invalid ignore-pretty 2023-04-03 09:24:11 +02:00
impl_items.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
intercrate.rs remove invalid ignore-pretty 2023-04-03 09:24:11 +02:00
intercrate.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
issue-15221.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-32922.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-40847.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-44128.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-47311.rs remove invalid ignore-pretty 2023-04-03 09:24:11 +02:00
issue-47312.rs remove invalid ignore-pretty 2023-04-03 09:24:11 +02:00
issue-61574-const-parameters.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-77523-def-site-async-await.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
items.rs remove invalid ignore-pretty 2023-04-03 09:24:11 +02:00
lambda-var-hygiene.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
legacy_interaction.rs remove invalid ignore-pretty 2023-04-03 09:24:11 +02:00
lexical.rs remove invalid ignore-pretty 2023-04-03 09:24:11 +02:00
local_inner_macros.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
macro-metavars-legacy.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
macro-metavars-transparent.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
missing-self-diag.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
missing-self-diag.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
nested_macro_privacy.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
nested_macro_privacy.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
nested-dollar-crate.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
no_implicit_prelude-2018.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
no_implicit_prelude-2018.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
no_implicit_prelude-2021.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
no_implicit_prelude.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
no_implicit_prelude.stderr Special-case item attributes in the suggestion output 2023-04-12 22:50:10 +00:00
panic-location.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
panic-location.run.stderr Hint optimizer about reserved capacity 2023-11-02 00:52:06 +00:00
pattern-macro.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
pattern-macro.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
prelude-import-hygiene.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
privacy-early.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
privacy-early.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
privacy.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
privacy.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
rustc-macro-transparency.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
rustc-macro-transparency.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
specialization.rs remove invalid ignore-pretty 2023-04-03 09:24:11 +02:00
stdlib-prelude-from-opaque-early.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
stdlib-prelude-from-opaque-late.rs Rename drop_copy lint to dropping_copy_types 2023-05-21 13:37:32 +02:00
thread-local-not-in-prelude.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
trait_items-2.rs remove invalid ignore-pretty 2023-04-03 09:24:11 +02:00
trait_items.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
trait_items.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
traits-in-scope.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
transparent-basic.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
unpretty-debug.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
unpretty-debug.stdout Improve print_tts by changing tokenstream::Spacing. 2023-12-11 09:19:09 +11:00
wrap_unhygienic_example.rs remove invalid ignore-pretty 2023-04-03 09:24:11 +02:00
xcrate.rs remove invalid ignore-pretty 2023-04-03 09:24:11 +02:00