rust/tests/ui/check-cfg
Alex Crichton 3af91a4cd4 Stabilize WebAssembly multivalue, reference-types, and tail-call target features
For the `multivalue` and `reference-types` features this commit is
similar to #117457 in that it's stabilizing target features specific to
WebAssembly targets. The previous PR left out these two features because
they weren't expected to change much about compiled code so it was
unclear what the rationale was. It has [since been discovered][blog]
that `reference-types` can be useful as it changes the binary format of
the `call_indirect` instruction. Additionally [on Zulip][zulip] there's
a use case of detecting these features at compile time and generating a
compile error to better warn users about features not supported on
engines.

This PR then additionally adds the `tail-call` feature which corresponds
to the [tail-call] proposal to WebAssembly. This feature advanced to
"phase 4" in the WebAssembly CG awhile back and has been supported in
LLVM for quite some time now. Engines are finishing up implementations
or have already shipped implementations, so while this is a bit of a
late addition to Rust itself it reflects the current status of
WebAssembly's state of the feature.

A test has been added here not only for these features but other
WebAssembly features as well to showcase that they're usable without
feature gates in stable Rust.

[blog]: https://blog.rust-lang.org/2024/09/24/webassembly-targets-change-in-default-target-features.html
[zulip]: https://rust-lang.zulipchat.com/#narrow/stream/122651-general/topic/wasm32.20reference-types.20.2F.20multivalue.20in.201.2E82-beta.20not.20enabled/near/473893987
[tail-call]: https://github.com/webassembly/tail-call
2024-11-10 07:45:14 -08:00
..
allow-at-crate-level.rs compiletest: add no-auto-check-cfg directive 2024-05-04 11:30:38 +02:00
allow-macro-cfg.rs compiletest: add no-auto-check-cfg directive 2024-05-04 11:30:38 +02:00
allow-same-level.rs compiletest: add no-auto-check-cfg directive 2024-05-04 11:30:38 +02:00
allow-same-level.stderr fmt-debug option 2024-08-28 23:32:40 +01:00
allow-top-level.rs compiletest: add no-auto-check-cfg directive 2024-05-04 11:30:38 +02:00
allow-upper-level.rs compiletest: add no-auto-check-cfg directive 2024-05-04 11:30:38 +02:00
cargo-build-script.rs Don't suggest adding the unexpected cfgs the build-script it-self 2024-05-22 20:58:57 +02:00
cargo-build-script.stderr fmt-debug option 2024-08-28 23:32:40 +01:00
cargo-feature.none.stderr fmt-debug option 2024-08-28 23:32:40 +01:00
cargo-feature.rs compiletest: add no-auto-check-cfg directive 2024-05-04 11:30:38 +02:00
cargo-feature.some.stderr fmt-debug option 2024-08-28 23:32:40 +01:00
cfg-value-for-cfg-name-duplicate.rs compiletest: add no-auto-check-cfg directive 2024-05-04 11:30:38 +02:00
cfg-value-for-cfg-name-duplicate.stderr fmt-debug option 2024-08-28 23:32:40 +01:00
cfg-value-for-cfg-name-multiple.rs compiletest: add no-auto-check-cfg directive 2024-05-04 11:30:38 +02:00
cfg-value-for-cfg-name-multiple.stderr fmt-debug option 2024-08-28 23:32:40 +01:00
cfg-value-for-cfg-name.rs compiletest: add no-auto-check-cfg directive 2024-05-04 11:30:38 +02:00
cfg-value-for-cfg-name.stderr fmt-debug option 2024-08-28 23:32:40 +01:00
compact-names.rs compiletest: add no-auto-check-cfg directive 2024-05-04 11:30:38 +02:00
compact-names.stderr fmt-debug option 2024-08-28 23:32:40 +01:00
compact-values.rs compiletest: add no-auto-check-cfg directive 2024-05-04 11:30:38 +02:00
compact-values.stderr Convert unexpected_cfg_{name,value} to struct diagnostics 2024-05-21 20:16:39 +00:00
concat-values.rs compiletest: add no-auto-check-cfg directive 2024-05-04 11:30:38 +02:00
concat-values.stderr Convert unexpected_cfg_{name,value} to struct diagnostics 2024-05-21 20:16:39 +00:00
diagnotics.cargo.stderr Fix quote escaping inside check-cfg value 2024-05-20 11:44:09 +02:00
diagnotics.rs Fix quote escaping inside check-cfg value 2024-05-20 11:44:09 +02:00
diagnotics.rustc.stderr Fix quote escaping inside check-cfg value 2024-05-20 11:44:09 +02:00
empty-values.rs compiletest: add no-auto-check-cfg directive 2024-05-04 11:30:38 +02:00
empty-values.stderr compiletest: add no-auto-check-cfg directive 2024-05-04 11:30:38 +02:00
exhaustive-names-values.empty_cfg.stderr fmt-debug option 2024-08-28 23:32:40 +01:00
exhaustive-names-values.feature.stderr fmt-debug option 2024-08-28 23:32:40 +01:00
exhaustive-names-values.full.stderr fmt-debug option 2024-08-28 23:32:40 +01:00
exhaustive-names-values.rs Fix test problems discovered by the revision check 2024-05-09 14:47:09 +10:00
exhaustive-names.rs compiletest: add no-auto-check-cfg directive 2024-05-04 11:30:38 +02:00
exhaustive-names.stderr fmt-debug option 2024-08-28 23:32:40 +01:00
exhaustive-values.empty_cfg.stderr compiletest: add no-auto-check-cfg directive 2024-05-04 11:30:38 +02:00
exhaustive-values.rs compiletest: add no-auto-check-cfg directive 2024-05-04 11:30:38 +02:00
exhaustive-values.without_names.stderr compiletest: add no-auto-check-cfg directive 2024-05-04 11:30:38 +02:00
invalid-arguments.any_values.stderr Improve check-cfg CLI errors with more structured diagnostics 2024-05-06 07:44:41 +02:00
invalid-arguments.anything_else.stderr Improve check-cfg CLI errors with more structured diagnostics 2024-05-06 07:44:41 +02:00
invalid-arguments.boolean.stderr Improve check-cfg CLI errors with more structured diagnostics 2024-05-06 07:44:41 +02:00
invalid-arguments.cfg_none.stderr Improve check-cfg CLI errors with more structured diagnostics 2024-05-06 07:44:41 +02:00
invalid-arguments.giberich.stderr Improve check-cfg CLI errors with more structured diagnostics 2024-05-06 07:44:41 +02:00
invalid-arguments.ident_in_values_1.stderr Improve check-cfg CLI errors with more structured diagnostics 2024-05-06 07:44:41 +02:00
invalid-arguments.ident_in_values_2.stderr Improve check-cfg CLI errors with more structured diagnostics 2024-05-06 07:44:41 +02:00
invalid-arguments.mixed_any.stderr Improve check-cfg CLI errors with more structured diagnostics 2024-05-06 07:44:41 +02:00
invalid-arguments.mixed_values_any.stderr Improve check-cfg CLI errors with more structured diagnostics 2024-05-06 07:44:41 +02:00
invalid-arguments.multiple_any.stderr Improve check-cfg CLI errors with more structured diagnostics 2024-05-06 07:44:41 +02:00
invalid-arguments.multiple_values_any.stderr Improve check-cfg CLI errors with more structured diagnostics 2024-05-06 07:44:41 +02:00
invalid-arguments.multiple_values.stderr Improve check-cfg CLI errors with more structured diagnostics 2024-05-06 07:44:41 +02:00
invalid-arguments.none_not_empty.stderr Improve check-cfg CLI errors with more structured diagnostics 2024-05-06 07:44:41 +02:00
invalid-arguments.not_empty_any.stderr Improve check-cfg CLI errors with more structured diagnostics 2024-05-06 07:44:41 +02:00
invalid-arguments.not_empty_values_any.stderr Improve check-cfg CLI errors with more structured diagnostics 2024-05-06 07:44:41 +02:00
invalid-arguments.rs Reject leading unsafe in cfg!(...) and --check-cfg. 2024-09-30 12:15:08 +02:00
invalid-arguments.string_for_name_1.stderr Improve check-cfg CLI errors with more structured diagnostics 2024-05-06 07:44:41 +02:00
invalid-arguments.string_for_name_2.stderr Improve check-cfg CLI errors with more structured diagnostics 2024-05-06 07:44:41 +02:00
invalid-arguments.unknown_meta_item_1.stderr Improve check-cfg CLI errors with more structured diagnostics 2024-05-06 07:44:41 +02:00
invalid-arguments.unknown_meta_item_2.stderr Improve check-cfg CLI errors with more structured diagnostics 2024-05-06 07:44:41 +02:00
invalid-arguments.unknown_meta_item_3.stderr Improve check-cfg CLI errors with more structured diagnostics 2024-05-06 07:44:41 +02:00
invalid-arguments.unsafe_attr.stderr Reject leading unsafe in cfg!(...) and --check-cfg. 2024-09-30 12:15:08 +02:00
invalid-arguments.unterminated.stderr Improve check-cfg CLI errors with more structured diagnostics 2024-05-06 07:44:41 +02:00
invalid-arguments.values_any_before_ident.stderr Improve check-cfg CLI errors with more structured diagnostics 2024-05-06 07:44:41 +02:00
invalid-arguments.values_any_missing_values.stderr Improve check-cfg CLI errors with more structured diagnostics 2024-05-06 07:44:41 +02:00
mix.rs compiletest: add no-auto-check-cfg directive 2024-05-04 11:30:38 +02:00
mix.stderr Stabilize WebAssembly multivalue, reference-types, and tail-call target features 2024-11-10 07:45:14 -08:00
my-awesome-platform.json Honor current target when checking conditional compilation values 2023-03-09 21:55:00 +01:00
no-expected-values.empty.stderr compiletest: add no-auto-check-cfg directive 2024-05-04 11:30:38 +02:00
no-expected-values.mixed.stderr compiletest: add no-auto-check-cfg directive 2024-05-04 11:30:38 +02:00
no-expected-values.rs compiletest: add no-auto-check-cfg directive 2024-05-04 11:30:38 +02:00
no-expected-values.simple.stderr compiletest: add no-auto-check-cfg directive 2024-05-04 11:30:38 +02:00
order-independant.rs compiletest: add no-auto-check-cfg directive 2024-05-04 11:30:38 +02:00
order-independant.values_after.stderr compiletest: add no-auto-check-cfg directive 2024-05-04 11:30:38 +02:00
order-independant.values_before.stderr compiletest: add no-auto-check-cfg directive 2024-05-04 11:30:38 +02:00
raw-keywords.edition2015.stderr Improve handling of raw-idents in check-cfg 2024-09-18 11:07:32 +02:00
raw-keywords.edition2021.stderr Improve handling of raw-idents in check-cfg 2024-09-18 11:07:32 +02:00
raw-keywords.rs Improve handling of raw-idents in check-cfg 2024-09-18 11:07:32 +02:00
stmt-no-ice.rs compiletest: add no-auto-check-cfg directive 2024-05-04 11:30:38 +02:00
stmt-no-ice.stderr fmt-debug option 2024-08-28 23:32:40 +01:00
unexpected-cfg-name.rs compiletest: add no-auto-check-cfg directive 2024-05-04 11:30:38 +02:00
unexpected-cfg-name.stderr compiletest: add no-auto-check-cfg directive 2024-05-04 11:30:38 +02:00
unexpected-cfg-value.rs compiletest: add no-auto-check-cfg directive 2024-05-04 11:30:38 +02:00
unexpected-cfg-value.stderr Convert unexpected_cfg_{name,value} to struct diagnostics 2024-05-21 20:16:39 +00:00
unknown-values.rs compiletest: add no-auto-check-cfg directive 2024-05-04 11:30:38 +02:00
values-none.concat_1.stderr Fix test problems discovered by the revision check 2024-05-09 14:47:09 +10:00
values-none.concat_2.stderr Fix test problems discovered by the revision check 2024-05-09 14:47:09 +10:00
values-none.explicit.stderr compiletest: add no-auto-check-cfg directive 2024-05-04 11:30:38 +02:00
values-none.implicit.stderr compiletest: add no-auto-check-cfg directive 2024-05-04 11:30:38 +02:00
values-none.rs Fix test problems discovered by the revision check 2024-05-09 14:47:09 +10:00
values-none.simple.stderr Fix test problems discovered by the revision check 2024-05-09 14:47:09 +10:00
values-target-json.rs compiletest: add no-auto-check-cfg directive 2024-05-04 11:30:38 +02:00
well-known-names.rs compiletest: add no-auto-check-cfg directive 2024-05-04 11:30:38 +02:00
well-known-names.stderr fmt-debug option 2024-08-28 23:32:40 +01:00
well-known-values.rs fmt-debug option 2024-08-28 23:32:40 +01:00
well-known-values.stderr Stabilize WebAssembly multivalue, reference-types, and tail-call target features 2024-11-10 07:45:14 -08:00