2022-09-28 09:21:33 +00:00
|
|
|
hir_analysis_unrecognized_atomic_operation =
|
2022-03-31 07:35:17 +00:00
|
|
|
unrecognized atomic operation function: `{$op}`
|
|
|
|
.label = unrecognized atomic operation
|
|
|
|
|
2022-09-28 09:21:33 +00:00
|
|
|
hir_analysis_wrong_number_of_generic_arguments_to_intrinsic =
|
2022-03-31 07:35:17 +00:00
|
|
|
intrinsic has wrong number of {$descr} parameters: found {$found}, expected {$expected}
|
|
|
|
.label = expected {$expected} {$descr} {$expected ->
|
|
|
|
[one] parameter
|
|
|
|
*[other] parameters
|
|
|
|
}
|
|
|
|
|
2022-09-28 09:21:33 +00:00
|
|
|
hir_analysis_unrecognized_intrinsic_function =
|
2022-03-31 07:35:17 +00:00
|
|
|
unrecognized intrinsic function: `{$name}`
|
|
|
|
.label = unrecognized intrinsic
|
|
|
|
|
2022-09-28 09:21:33 +00:00
|
|
|
hir_analysis_lifetimes_or_bounds_mismatch_on_trait =
|
2022-03-31 07:35:17 +00:00
|
|
|
lifetime parameters or bounds on {$item_kind} `{$ident}` do not match the trait declaration
|
|
|
|
.label = lifetimes do not match {$item_kind} in trait
|
2022-08-10 07:42:10 +00:00
|
|
|
.generics_label = lifetimes in impl do not match this {$item_kind} in trait
|
2022-11-28 08:03:57 +00:00
|
|
|
.where_label = this `where` clause might not match the one in the trait
|
|
|
|
.bounds_label = this bound might be missing in the impl
|
2022-03-31 07:35:17 +00:00
|
|
|
|
2022-11-03 00:45:08 +00:00
|
|
|
hir_analysis_async_trait_impl_should_be_async =
|
|
|
|
method `{$method_name}` should be async because the method from the trait is async
|
|
|
|
.trait_item_label = required because the trait method is async
|
|
|
|
|
2022-09-28 09:21:33 +00:00
|
|
|
hir_analysis_drop_impl_on_wrong_item =
|
2022-07-21 22:00:15 +00:00
|
|
|
the `Drop` trait may only be implemented for local structs, enums, and unions
|
|
|
|
.label = must be a struct, enum, or union in the current crate
|
2022-03-31 07:35:17 +00:00
|
|
|
|
2022-09-28 09:21:33 +00:00
|
|
|
hir_analysis_field_already_declared =
|
2022-03-31 07:35:17 +00:00
|
|
|
field `{$field_name}` is already declared
|
|
|
|
.label = field already declared
|
2022-08-10 07:42:10 +00:00
|
|
|
.previous_decl_label = `{$field_name}` first declared here
|
2022-03-31 07:35:17 +00:00
|
|
|
|
2022-10-13 09:13:02 +00:00
|
|
|
hir_analysis_expected_used_symbol = expected `used`, `used(compiler)` or `used(linker)`
|
2022-03-31 07:35:17 +00:00
|
|
|
|
2022-09-28 09:21:33 +00:00
|
|
|
hir_analysis_ambiguous_lifetime_bound =
|
2022-03-31 07:35:17 +00:00
|
|
|
ambiguous lifetime bound, explicit lifetime bound required
|
|
|
|
|
2022-09-28 09:21:33 +00:00
|
|
|
hir_analysis_assoc_type_binding_not_allowed =
|
2022-03-31 07:35:17 +00:00
|
|
|
associated type bindings are not allowed here
|
|
|
|
.label = associated type not allowed here
|
|
|
|
|
2023-03-09 07:42:45 +00:00
|
|
|
hir_analysis_parenthesized_fn_trait_expansion =
|
|
|
|
parenthesized trait syntax expands to `{$expanded_type}`
|
|
|
|
|
2022-09-28 09:21:33 +00:00
|
|
|
hir_analysis_typeof_reserved_keyword_used =
|
2022-03-31 07:35:17 +00:00
|
|
|
`typeof` is a reserved keyword but unimplemented
|
2022-04-07 18:46:53 +00:00
|
|
|
.suggestion = consider replacing `typeof(...)` with an actual type
|
2022-03-31 07:35:17 +00:00
|
|
|
.label = reserved keyword
|
|
|
|
|
2022-09-28 09:21:33 +00:00
|
|
|
hir_analysis_value_of_associated_struct_already_specified =
|
2022-03-31 07:35:17 +00:00
|
|
|
the value of the associated type `{$item_name}` (from trait `{$def_path}`) is already specified
|
|
|
|
.label = re-bound here
|
2022-08-10 07:42:10 +00:00
|
|
|
.previous_bound_label = `{$item_name}` bound here first
|
2022-03-31 07:35:17 +00:00
|
|
|
|
2022-09-28 09:21:33 +00:00
|
|
|
hir_analysis_unconstrained_opaque_type = unconstrained opaque type
|
2022-10-22 03:09:49 +00:00
|
|
|
.note = `{$name}` must be used in combination with a concrete type within the same {$what}
|
2022-05-06 02:46:12 +00:00
|
|
|
|
2022-10-13 09:13:02 +00:00
|
|
|
hir_analysis_manual_implementation =
|
|
|
|
manual implementations of `{$trait_name}` are experimental
|
|
|
|
.label = manual implementations of `{$trait_name}` are experimental
|
|
|
|
.help = add `#![feature(unboxed_closures)]` to the crate attributes to enable
|
|
|
|
|
|
|
|
hir_analysis_substs_on_overridden_impl = could not resolve substs on overridden impl
|
|
|
|
|
|
|
|
hir_analysis_trait_object_declared_with_no_traits =
|
|
|
|
at least one trait is required for an object type
|
|
|
|
.alias_span = this alias does not contain a trait
|
|
|
|
|
2022-09-28 09:21:33 +00:00
|
|
|
hir_analysis_missing_type_params =
|
2022-05-07 06:32:01 +00:00
|
|
|
the type {$parameterCount ->
|
|
|
|
[one] parameter
|
|
|
|
*[other] parameters
|
|
|
|
} {$parameters} must be explicitly specified
|
|
|
|
.label = type {$parameterCount ->
|
|
|
|
[one] parameter
|
|
|
|
*[other] parameters
|
|
|
|
} {$parameters} must be specified for this
|
|
|
|
.suggestion = set the type {$parameterCount ->
|
|
|
|
[one] parameter
|
|
|
|
*[other] parameters
|
|
|
|
} to the desired {$parameterCount ->
|
|
|
|
[one] type
|
|
|
|
*[other] types
|
|
|
|
}
|
2022-08-10 07:42:10 +00:00
|
|
|
.no_suggestion_label = missing {$parameterCount ->
|
2022-05-07 06:32:01 +00:00
|
|
|
[one] reference
|
|
|
|
*[other] references
|
|
|
|
} to {$parameters}
|
|
|
|
.note = because of the default `Self` reference, type parameters must be specified on object types
|
2022-05-07 06:50:01 +00:00
|
|
|
|
2022-10-13 09:13:02 +00:00
|
|
|
hir_analysis_copy_impl_on_type_with_dtor =
|
2023-03-07 23:55:51 +00:00
|
|
|
the trait `Copy` cannot be implemented for this type; the type has a destructor
|
2022-10-13 09:13:02 +00:00
|
|
|
.label = `Copy` not allowed on types with destructors
|
2022-08-17 09:47:44 +00:00
|
|
|
|
2022-10-13 09:13:02 +00:00
|
|
|
hir_analysis_multiple_relaxed_default_bounds =
|
|
|
|
type parameter has more than one relaxed default bound, only one is supported
|
2022-08-17 09:47:44 +00:00
|
|
|
|
2022-10-13 09:13:02 +00:00
|
|
|
hir_analysis_copy_impl_on_non_adt =
|
2023-03-07 23:55:51 +00:00
|
|
|
the trait `Copy` cannot be implemented for this type
|
2022-10-13 09:13:02 +00:00
|
|
|
.label = type is not a structure or enumeration
|
2022-08-18 12:14:21 +00:00
|
|
|
|
2022-10-25 18:28:04 +00:00
|
|
|
hir_analysis_const_impl_for_non_const_trait =
|
|
|
|
const `impl` for trait `{$trait_name}` which is not marked with `#[const_trait]`
|
|
|
|
.suggestion = mark `{$trait_name}` as const
|
|
|
|
.note = marking a trait with `#[const_trait]` ensures all default method bodies are `const`
|
|
|
|
.adding = adding a non-const method body in the future would be a breaking change
|
|
|
|
|
|
|
|
hir_analysis_const_bound_for_non_const_trait =
|
|
|
|
~const can only be applied to `#[const_trait]` traits
|
2022-10-27 20:48:41 +00:00
|
|
|
|
2022-10-27 21:29:16 +00:00
|
|
|
hir_analysis_self_in_impl_self =
|
2022-10-27 21:18:26 +00:00
|
|
|
`Self` is not valid in the self type of an impl block
|
2022-10-27 21:29:16 +00:00
|
|
|
.note = replace `Self` with a different type
|
Move linkage type check to HIR analysis and fix semantics issues.
This ensures that the error is printed even for unused variables,
as well as unifying the handling between the LLVM and GCC backends.
This also fixes unusual behavior around exported Rust-defined variables
with linkage attributes. With the previous behavior, it appears to be
impossible to define such a variable such that it can actually be imported
and used by another crate. This is because on the importing side, the
variable is required to be a pointer, but on the exporting side, the
type checker rejects static variables of pointer type because they do
not implement `Sync`. Even if it were possible to import such a type, it
appears that code generation on the importing side would add an unexpected
additional level of pointer indirection, which would break type safety.
This highlighted that the semantics of linkage on Rust-defined variables
is different to linkage on foreign items. As such, we now model the
difference with two different codegen attributes: linkage for Rust-defined
variables, and import_linkage for foreign items.
This change gives semantics to the test
src/test/ui/linkage-attr/auxiliary/def_illtyped_external.rs which was
previously expected to fail to compile. Therefore, convert it into a
test that is expected to successfully compile.
The update to the GCC backend is speculative and untested.
2022-11-24 02:13:30 +00:00
|
|
|
|
|
|
|
hir_analysis_linkage_type =
|
2022-11-24 02:15:50 +00:00
|
|
|
invalid type for variable with `#[linkage]` attribute
|
2022-12-27 00:39:36 +00:00
|
|
|
|
|
|
|
hir_analysis_auto_deref_reached_recursion_limit = reached the recursion limit while auto-dereferencing `{$ty}`
|
|
|
|
.label = deref recursion limit reached
|
|
|
|
.help = consider increasing the recursion limit by adding a `#![recursion_limit = "{$suggested_limit}"]` attribute to your crate (`{$crate_name}`)
|
2023-02-21 20:27:16 +00:00
|
|
|
|
2023-02-22 23:50:38 +00:00
|
|
|
hir_analysis_where_clause_on_main = `main` function is not allowed to have a `where` clause
|
|
|
|
.label = `main` cannot have a `where` clause
|
|
|
|
|
2023-02-21 20:27:16 +00:00
|
|
|
hir_analysis_track_caller_on_main = `main` function is not allowed to be `#[track_caller]`
|
2023-02-25 22:01:44 +00:00
|
|
|
.suggestion = remove this annotation
|
2023-02-24 20:23:30 +00:00
|
|
|
|
2023-03-02 11:37:32 +00:00
|
|
|
hir_analysis_target_feature_on_main = `main` function is not allowed to have `#[target_feature]`
|
|
|
|
|
2023-02-24 20:23:30 +00:00
|
|
|
hir_analysis_start_not_track_caller = `start` is not allowed to be `#[track_caller]`
|
|
|
|
.label = `start` is not allowed to be `#[track_caller]`
|
|
|
|
|
2023-03-02 13:26:12 +00:00
|
|
|
hir_analysis_start_not_target_feature = `start` is not allowed to have `#[target_feature]`
|
|
|
|
.label = `start` is not allowed to have `#[target_feature]`
|
|
|
|
|
2023-02-24 20:23:30 +00:00
|
|
|
hir_analysis_start_not_async = `start` is not allowed to be `async`
|
|
|
|
.label = `start` is not allowed to be `async`
|
|
|
|
|
|
|
|
hir_analysis_start_function_where = start function is not allowed to have a `where` clause
|
|
|
|
.label = start function cannot have a `where` clause
|
|
|
|
|
|
|
|
hir_analysis_start_function_parameters = start function is not allowed to have type parameters
|
|
|
|
.label = start function cannot have type parameters
|
|
|
|
|
|
|
|
hir_analysis_main_function_return_type_generic = `main` function return type is not allowed to have generic parameters
|
|
|
|
|
|
|
|
hir_analysis_main_function_async = `main` function is not allowed to be `async`
|
|
|
|
.label = `main` function is not allowed to be `async`
|
|
|
|
|
|
|
|
hir_analysis_main_function_generic_parameters = `main` function is not allowed to have generic parameters
|
|
|
|
.label = `main` cannot have generic parameters
|
|
|
|
|
|
|
|
hir_analysis_variadic_function_compatible_convention = C-variadic function must have a compatible calling convention, like {$conventions}
|
|
|
|
.label = C-variadic function must have a compatible calling convention
|
2023-02-28 05:59:54 +00:00
|
|
|
|
|
|
|
hir_analysis_cannot_capture_late_bound_ty_in_anon_const =
|
|
|
|
cannot capture late-bound type parameter in a constant
|
|
|
|
.label = parameter defined here
|
|
|
|
|
|
|
|
hir_analysis_cannot_capture_late_bound_const_in_anon_const =
|
|
|
|
cannot capture late-bound const parameter in a constant
|
|
|
|
.label = parameter defined here
|
2023-02-25 17:26:48 +00:00
|
|
|
|
|
|
|
hir_analysis_variances_of = {$variances_of}
|
|
|
|
|
|
|
|
hir_analysis_pass_to_variadic_function = can't pass `{$ty}` to variadic function
|
|
|
|
.suggestion = cast the value to `{$cast_ty}`
|
|
|
|
.help = cast the value to `{$cast_ty}`
|
|
|
|
|
|
|
|
hir_analysis_cast_thin_pointer_to_fat_pointer = cannot cast thin pointer `{$expr_ty}` to fat pointer `{$cast_ty}`
|
2023-03-07 22:26:52 +00:00
|
|
|
|
|
|
|
hir_analysis_invalid_union_field =
|
|
|
|
field must implement `Copy` or be wrapped in `ManuallyDrop<...>` to be used in a union
|
|
|
|
.note = union fields must not have drop side-effects, which is currently enforced via either `Copy` or `ManuallyDrop<...>`
|
|
|
|
|
|
|
|
hir_analysis_invalid_union_field_sugg =
|
|
|
|
wrap the field type in `ManuallyDrop<...>`
|
2023-03-11 04:10:09 +00:00
|
|
|
|
|
|
|
hir_analysis_return_type_notation_on_non_rpitit =
|
|
|
|
return type notation used on function that is not `async` and does not return `impl Trait`
|
|
|
|
.note = function returns `{$ty}`, which is not compatible with associated type return bounds
|
|
|
|
.label = this function must be `async` or return `impl Trait`
|
|
|
|
|
|
|
|
hir_analysis_return_type_notation_equality_bound =
|
|
|
|
return type notation is not allowed to use type equality
|
|
|
|
|
|
|
|
hir_analysis_return_type_notation_missing_method =
|
|
|
|
cannot find associated function `{$assoc_name}` in trait `{$trait_name}`
|