2022-08-23 07:33:06 -05:00
|
|
|
infer_opaque_hidden_type =
|
2022-08-21 12:56:00 -05:00
|
|
|
opaque type's hidden type cannot be another opaque type from the same scope
|
|
|
|
.label = one of the two opaque types used here has to be outside its defining scope
|
|
|
|
.opaque_type = opaque type whose hidden type is being assigned
|
|
|
|
.hidden_type = opaque type being used as hidden type
|
|
|
|
|
|
|
|
infer_type_annotations_needed = {$source_kind ->
|
|
|
|
[closure] type annotations needed for the closure `{$source_name}`
|
|
|
|
[normal] type annotations needed for `{$source_name}`
|
|
|
|
*[other] type annotations needed
|
2022-08-23 07:33:06 -05:00
|
|
|
}
|
2022-08-21 12:56:00 -05:00
|
|
|
.label = type must be known at this point
|
|
|
|
|
|
|
|
infer_label_bad = {$bad_kind ->
|
|
|
|
*[other] cannot infer type
|
|
|
|
[more_info] cannot infer {$prefix_kind ->
|
|
|
|
*[type] type for {$prefix}
|
|
|
|
[const_with_param] the value of const parameter
|
|
|
|
[const] the value of the constant
|
|
|
|
} `{$name}`{$has_parent ->
|
|
|
|
[true] {" "}declared on the {$parent_prefix} `{$parent_name}`
|
|
|
|
*[false] {""}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
infer_source_kind_subdiag_let = {$kind ->
|
|
|
|
[with_pattern] consider giving `{$name}` an explicit type
|
|
|
|
[closure] consider giving this closure parameter an explicit type
|
|
|
|
*[other] consider giving this pattern a type
|
|
|
|
}{$x_kind ->
|
|
|
|
[has_name] , where the {$prefix_kind ->
|
|
|
|
*[type] type for {$prefix}
|
|
|
|
[const_with_param] the value of const parameter
|
|
|
|
[const] the value of the constant
|
|
|
|
} `{$arg_name}` is specified
|
|
|
|
[underscore] , where the placeholders `_` are specified
|
|
|
|
*[empty] {""}
|
|
|
|
}
|
|
|
|
|
|
|
|
infer_source_kind_subdiag_generic_label =
|
2022-08-23 07:33:06 -05:00
|
|
|
cannot infer {$is_type ->
|
2022-08-21 12:56:00 -05:00
|
|
|
[true] type
|
|
|
|
*[false] the value
|
2022-08-23 07:33:06 -05:00
|
|
|
} of the {$is_type ->
|
2022-08-21 12:56:00 -05:00
|
|
|
[true] type
|
|
|
|
*[false] const
|
|
|
|
} {$parent_exists ->
|
|
|
|
[true] parameter `{$param_name}` declared on the {$parent_prefix} `{$parent_name}`
|
2022-08-23 07:33:06 -05:00
|
|
|
*[false] parameter {$param_name}
|
2022-08-21 12:56:00 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
infer_source_kind_subdiag_generic_suggestion =
|
2022-08-23 07:33:06 -05:00
|
|
|
consider specifying the generic {$arg_count ->
|
2022-08-21 12:56:00 -05:00
|
|
|
[one] argument
|
|
|
|
*[other] arguments
|
|
|
|
}
|
|
|
|
|
2022-08-23 07:33:06 -05:00
|
|
|
infer_source_kind_fully_qualified =
|
2022-08-21 12:56:00 -05:00
|
|
|
try using a fully qualified path to specify the expected types
|
|
|
|
|
|
|
|
infer_source_kind_closure_return =
|
|
|
|
try giving this closure an explicit return type
|
|
|
|
|
2022-08-23 05:48:14 -05:00
|
|
|
# generator_kind may need to be translated
|
2022-08-21 12:56:00 -05:00
|
|
|
infer_need_type_info_in_generator =
|
2022-08-24 07:46:29 -05:00
|
|
|
type inside {$generator_kind ->
|
|
|
|
[async_block] `async` block
|
|
|
|
[async_closure] `async` closure
|
|
|
|
[async_fn] `async fn` body
|
|
|
|
*[generator] generator
|
|
|
|
} must be known in this context
|
2022-08-23 05:48:14 -05:00
|
|
|
|
|
|
|
|
|
|
|
infer_subtype = ...so that the {$requirement ->
|
|
|
|
[method_compat] method type is compatible with trait
|
|
|
|
[type_compat] associated type is compatible with trait
|
|
|
|
[const_compat] const is compatible with trait
|
|
|
|
[expr_assignable] expression is assignable
|
|
|
|
[if_else_different] `if` and `else` have incompatible types
|
|
|
|
[no_else] `if` missing an `else` returns `()`
|
|
|
|
[fn_main_correct_type] `main` function has the correct type
|
|
|
|
[fn_start_correct_type] #[start]` function has the correct type
|
|
|
|
[intristic_correct_type] intrinsic has the correct type
|
|
|
|
[method_correct_type] method receiver has the correct type
|
|
|
|
*[other] types are compatible
|
|
|
|
}
|
|
|
|
infer_subtype_2 = ...so that {$requirement ->
|
|
|
|
[method_compat] method type is compatible with trait
|
|
|
|
[type_compat] associated type is compatible with trait
|
|
|
|
[const_compat] const is compatible with trait
|
|
|
|
[expr_assignable] expression is assignable
|
|
|
|
[if_else_different] `if` and `else` have incompatible types
|
|
|
|
[no_else] `if` missing an `else` returns `()`
|
|
|
|
[fn_main_correct_type] `main` function has the correct type
|
|
|
|
[fn_start_correct_type] #[start]` function has the correct type
|
|
|
|
[intristic_correct_type] intrinsic has the correct type
|
|
|
|
[method_correct_type] method receiver has the correct type
|
|
|
|
*[other] types are compatible
|
|
|
|
}
|
|
|
|
|
|
|
|
infer_reborrow = ...so that reference does not outlive borrowed content
|
|
|
|
infer_reborrow_upvar = ...so that closure can access `{$name}`
|
|
|
|
infer_relate_object_bound = ...so that it can be closed over into an object
|
|
|
|
infer_reference_outlives_referent = ...so that the reference type `{$name}` does not outlive the data it points at
|
|
|
|
infer_relate_param_bound = ...so that the type `{$name}` will meet its required lifetime bounds{$continues ->
|
2022-08-28 11:45:19 -05:00
|
|
|
[true] ...
|
|
|
|
*[false] {""}
|
2022-08-23 05:48:14 -05:00
|
|
|
}
|
|
|
|
infer_relate_param_bound_2 = ...that is required by this bound
|
|
|
|
infer_relate_region_param_bound = ...so that the declared lifetime parameter bounds are satisfied
|
|
|
|
infer_compare_impl_item_obligation = ...so that the definition in impl matches the definition from the trait
|
2022-09-16 16:20:11 -05:00
|
|
|
infer_ascribe_user_type_prove_predicate = ...so that the where clause holds
|
2022-08-28 11:45:19 -05:00
|
|
|
|
|
|
|
infer_nothing = {""}
|
|
|
|
|
|
|
|
infer_lifetime_mismatch = lifetime mismatch
|
|
|
|
|
|
|
|
infer_declared_different = this parameter and the return type are declared with different lifetimes...
|
|
|
|
infer_data_returned = ...but data{$label_var1_exists ->
|
|
|
|
[true] {" "}from `{$label_var1}`
|
|
|
|
*[false] {""}
|
|
|
|
} is returned here
|
|
|
|
|
|
|
|
infer_data_lifetime_flow = ...but data with one lifetime flows into the other here
|
|
|
|
infer_declared_multiple = this type is declared with multiple lifetimes...
|
|
|
|
infer_types_declared_different = these two types are declared with different lifetimes...
|
|
|
|
infer_data_flows = ...but data{$label_var1_exists ->
|
2022-11-12 21:10:56 -06:00
|
|
|
[true] {" "}from `{$label_var1}`
|
2022-08-28 11:45:19 -05:00
|
|
|
*[false] -> {""}
|
|
|
|
} flows{$label_var2_exists ->
|
2022-11-12 21:10:56 -06:00
|
|
|
[true] {" "}into `{$label_var2}`
|
2022-08-28 11:45:19 -05:00
|
|
|
*[false] -> {""}
|
|
|
|
} here
|
|
|
|
|
|
|
|
infer_lifetime_param_suggestion = consider introducing a named lifetime parameter{$is_impl ->
|
|
|
|
[true] {" "}and update trait if needed
|
|
|
|
*[false] {""}
|
|
|
|
}
|
|
|
|
infer_lifetime_param_suggestion_elided = each elided lifetime in input position becomes a distinct lifetime
|
2022-08-30 10:28:50 -05:00
|
|
|
|
|
|
|
infer_region_explanation = {$pref_kind ->
|
|
|
|
*[should_not_happen] [{$pref_kind}]
|
|
|
|
[empty] {""}
|
|
|
|
}{$pref_kind ->
|
|
|
|
[empty] {""}
|
|
|
|
*[other] {" "}
|
|
|
|
}{$desc_kind ->
|
|
|
|
*[should_not_happen] [{$desc_kind}]
|
|
|
|
[restatic] the static lifetime
|
|
|
|
[revar] lifetime {$desc_arg}
|
|
|
|
|
|
|
|
[as_defined] the lifetime `{$desc_arg}` as defined here
|
|
|
|
[as_defined_anon] the anonymous lifetime as defined here
|
|
|
|
[defined_here] the anonymous lifetime defined here
|
|
|
|
[anon_num_here] the anonymous lifetime #{$desc_num_arg} defined here
|
|
|
|
[defined_here_reg] the lifetime `{$desc_arg}` as defined here
|
|
|
|
}{$suff_kind ->
|
|
|
|
*[should_not_happen] [{$suff_kind}]
|
|
|
|
[empty]{""}
|
|
|
|
[continues] ...
|
|
|
|
}
|
|
|
|
|
|
|
|
infer_mismatched_static_lifetime = incompatible lifetime on type
|
2022-10-14 07:25:59 -05:00
|
|
|
infer_does_not_outlive_static_from_impl = ...does not necessarily outlive the static lifetime introduced by the compatible `impl`
|
|
|
|
infer_implicit_static_lifetime_note = this has an implicit `'static` lifetime requirement
|
|
|
|
infer_implicit_static_lifetime_suggestion = consider relaxing the implicit `'static` requirement
|
2022-08-30 10:28:50 -05:00
|
|
|
infer_msl_introduces_static = introduces a `'static` lifetime requirement
|
|
|
|
infer_msl_unmet_req = because this has an unmet lifetime requirement
|
|
|
|
infer_msl_trait_note = this has an implicit `'static` lifetime requirement
|
|
|
|
infer_msl_trait_sugg = consider relaxing the implicit `'static` requirement
|
2022-11-08 02:04:14 -06:00
|
|
|
infer_suggest_add_let_for_letchains = consider adding `let`
|
2022-09-08 14:28:00 -05:00
|
|
|
|
2022-11-03 12:45:14 -05:00
|
|
|
infer_explicit_lifetime_required_with_ident = explicit lifetime required in the type of `{$simple_ident}`
|
2022-09-08 14:28:00 -05:00
|
|
|
.label = lifetime `{$named}` required
|
|
|
|
|
2022-11-03 12:45:14 -05:00
|
|
|
infer_explicit_lifetime_required_with_param_type = explicit lifetime required in parameter type
|
|
|
|
.label = lifetime `{$named}` required
|
|
|
|
|
|
|
|
infer_explicit_lifetime_required_sugg_with_ident = add explicit lifetime `{$named}` to the type of `{$simple_ident}`
|
|
|
|
|
|
|
|
infer_explicit_lifetime_required_sugg_with_param_type = add explicit lifetime `{$named}` to type
|
2022-09-10 16:45:38 -05:00
|
|
|
|
2022-09-29 09:10:43 -05:00
|
|
|
infer_actual_impl_expl_expected_signature_two = {$leading_ellipsis ->
|
2022-09-10 16:45:38 -05:00
|
|
|
[true] ...
|
|
|
|
*[false] {""}
|
2022-09-29 09:10:43 -05:00
|
|
|
}closure with signature `{$ty_or_sig}` must implement `{$trait_path}`, for any two lifetimes `'{$lifetime_1}` and `'{$lifetime_2}`...
|
|
|
|
infer_actual_impl_expl_expected_signature_any = {$leading_ellipsis ->
|
|
|
|
[true] ...
|
|
|
|
*[false] {""}
|
|
|
|
}closure with signature `{$ty_or_sig}` must implement `{$trait_path}`, for any lifetime `'{$lifetime_1}`...
|
|
|
|
infer_actual_impl_expl_expected_signature_some = {$leading_ellipsis ->
|
|
|
|
[true] ...
|
|
|
|
*[false] {""}
|
2023-01-19 17:13:01 -06:00
|
|
|
}closure with signature `{$ty_or_sig}` must implement `{$trait_path}`, for some specific lifetime `'{$lifetime_1}`...
|
2022-09-29 09:10:43 -05:00
|
|
|
infer_actual_impl_expl_expected_signature_nothing = {$leading_ellipsis ->
|
|
|
|
[true] ...
|
|
|
|
*[false] {""}
|
|
|
|
}closure with signature `{$ty_or_sig}` must implement `{$trait_path}`
|
|
|
|
infer_actual_impl_expl_expected_passive_two = {$leading_ellipsis ->
|
|
|
|
[true] ...
|
|
|
|
*[false] {""}
|
|
|
|
}`{$trait_path}` would have to be implemented for the type `{$ty_or_sig}`, for any two lifetimes `'{$lifetime_1}` and `'{$lifetime_2}`...
|
|
|
|
infer_actual_impl_expl_expected_passive_any = {$leading_ellipsis ->
|
|
|
|
[true] ...
|
|
|
|
*[false] {""}
|
|
|
|
}`{$trait_path}` would have to be implemented for the type `{$ty_or_sig}`, for any lifetime `'{$lifetime_1}`...
|
|
|
|
infer_actual_impl_expl_expected_passive_some = {$leading_ellipsis ->
|
|
|
|
[true] ...
|
|
|
|
*[false] {""}
|
2023-01-19 17:13:01 -06:00
|
|
|
}`{$trait_path}` would have to be implemented for the type `{$ty_or_sig}`, for some specific lifetime `'{$lifetime_1}`...
|
2022-09-29 09:10:43 -05:00
|
|
|
infer_actual_impl_expl_expected_passive_nothing = {$leading_ellipsis ->
|
|
|
|
[true] ...
|
|
|
|
*[false] {""}
|
|
|
|
}`{$trait_path}` would have to be implemented for the type `{$ty_or_sig}`
|
|
|
|
infer_actual_impl_expl_expected_other_two = {$leading_ellipsis ->
|
|
|
|
[true] ...
|
|
|
|
*[false] {""}
|
|
|
|
}`{$ty_or_sig}` must implement `{$trait_path}`, for any two lifetimes `'{$lifetime_1}` and `'{$lifetime_2}`...
|
|
|
|
infer_actual_impl_expl_expected_other_any = {$leading_ellipsis ->
|
|
|
|
[true] ...
|
|
|
|
*[false] {""}
|
|
|
|
}`{$ty_or_sig}` must implement `{$trait_path}`, for any lifetime `'{$lifetime_1}`...
|
|
|
|
infer_actual_impl_expl_expected_other_some = {$leading_ellipsis ->
|
|
|
|
[true] ...
|
|
|
|
*[false] {""}
|
2023-01-19 17:13:01 -06:00
|
|
|
}`{$ty_or_sig}` must implement `{$trait_path}`, for some specific lifetime `'{$lifetime_1}`...
|
2022-09-29 09:10:43 -05:00
|
|
|
infer_actual_impl_expl_expected_other_nothing = {$leading_ellipsis ->
|
|
|
|
[true] ...
|
|
|
|
*[false] {""}
|
|
|
|
}`{$ty_or_sig}` must implement `{$trait_path}`
|
2022-09-10 16:45:38 -05:00
|
|
|
|
2022-10-15 05:16:51 -05:00
|
|
|
infer_actual_impl_expl_but_actually_implements_trait = ...but it actually implements `{$trait_path}`{$has_lifetime ->
|
2022-09-29 09:10:43 -05:00
|
|
|
[true] , for some specific lifetime `'{$lifetime}`
|
|
|
|
*[false] {""}
|
|
|
|
}
|
2022-10-15 05:16:51 -05:00
|
|
|
infer_actual_impl_expl_but_actually_implemented_for_ty = ...but `{$trait_path}` is actually implemented for the type `{$ty}`{$has_lifetime ->
|
2022-09-29 09:10:43 -05:00
|
|
|
[true] , for some specific lifetime `'{$lifetime}`
|
|
|
|
*[false] {""}
|
|
|
|
}
|
2022-10-15 05:16:51 -05:00
|
|
|
infer_actual_impl_expl_but_actually_ty_implements = ...but `{$ty}` actually implements `{$trait_path}`{$has_lifetime ->
|
2022-09-10 16:45:38 -05:00
|
|
|
[true] , for some specific lifetime `'{$lifetime}`
|
|
|
|
*[false] {""}
|
|
|
|
}
|
|
|
|
|
|
|
|
infer_trait_placeholder_mismatch = implementation of `{$trait_def_id}` is not general enough
|
|
|
|
.label_satisfy = doesn't satisfy where-clause
|
|
|
|
.label_where = due to a where-clause on `{$def_id}`...
|
|
|
|
.label_dup = implementation of `{$trait_def_id}` is not general enough
|
2022-09-13 12:11:42 -05:00
|
|
|
|
|
|
|
infer_trait_impl_diff = `impl` item signature doesn't match `trait` item signature
|
|
|
|
.found = found `{$found}`
|
|
|
|
.expected = expected `{$expected}`
|
2022-12-24 17:17:25 -06:00
|
|
|
.expected_found = expected signature `{$expected}`
|
|
|
|
{" "}found signature `{$found}`
|
2022-09-13 12:11:42 -05:00
|
|
|
|
|
|
|
infer_tid_rel_help = verify the lifetime relationships in the `trait` and `impl` between the `self` argument, the other inputs and its output
|
2022-10-14 13:50:06 -05:00
|
|
|
infer_tid_consider_borrowing = consider borrowing this type parameter in the trait
|
2022-09-13 12:11:42 -05:00
|
|
|
infer_tid_param_help = the lifetime requirements from the `impl` do not correspond to the requirements in the `trait`
|
2022-09-16 18:54:59 -05:00
|
|
|
|
|
|
|
infer_dtcs_has_lifetime_req_label = this has an implicit `'static` lifetime requirement
|
|
|
|
infer_dtcs_introduces_requirement = calling this method introduces the `impl`'s 'static` requirement
|
|
|
|
infer_dtcs_has_req_note = the used `impl` has a `'static` requirement
|
|
|
|
infer_dtcs_suggestion = consider relaxing the implicit `'static` requirement
|
|
|
|
|
|
|
|
infer_but_calling_introduces = {$has_param_name ->
|
|
|
|
[true] `{$param_name}`
|
|
|
|
*[false] `fn` parameter
|
|
|
|
} has {$lifetime_kind ->
|
2023-01-18 03:23:50 -06:00
|
|
|
[true] lifetime `{$lifetime}`
|
|
|
|
*[false] an anonymous lifetime `'_`
|
|
|
|
} but calling `{$assoc_item}` introduces an implicit `'static` lifetime requirement
|
2022-09-16 18:54:59 -05:00
|
|
|
.label1 = {$has_lifetime ->
|
2023-01-18 03:23:50 -06:00
|
|
|
[true] lifetime `{$lifetime}`
|
|
|
|
*[false] an anonymous lifetime `'_`
|
2022-09-16 18:54:59 -05:00
|
|
|
}
|
|
|
|
.label2 = ...is used and required to live as long as `'static` here because of an implicit lifetime bound on the {$has_impl_path ->
|
2023-01-18 03:23:50 -06:00
|
|
|
[true] `impl` of `{$impl_path}`
|
|
|
|
*[false] inherent `impl`
|
2022-09-16 18:54:59 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
infer_but_needs_to_satisfy = {$has_param_name ->
|
|
|
|
[true] `{$param_name}`
|
|
|
|
*[false] `fn` parameter
|
|
|
|
} has {$has_lifetime ->
|
2023-01-18 03:23:50 -06:00
|
|
|
[true] lifetime `{$lifetime}`
|
|
|
|
*[false] an anonymous lifetime `'_`
|
2022-09-16 18:54:59 -05:00
|
|
|
} but it needs to satisfy a `'static` lifetime requirement
|
|
|
|
.influencer = this data with {$has_lifetime ->
|
2023-01-18 03:23:50 -06:00
|
|
|
[true] lifetime `{$lifetime}`
|
|
|
|
*[false] an anonymous lifetime `'_`
|
2022-09-16 18:54:59 -05:00
|
|
|
}...
|
|
|
|
.require = {$spans_empty ->
|
|
|
|
*[true] ...is used and required to live as long as `'static` here
|
|
|
|
[false] ...and is required to live as long as `'static` here
|
|
|
|
}
|
|
|
|
.used_here = ...is used here...
|
|
|
|
.introduced_by_bound = 'static` lifetime requirement introduced by this bound
|
|
|
|
|
|
|
|
infer_more_targeted = {$has_param_name ->
|
|
|
|
[true] `{$param_name}`
|
|
|
|
*[false] `fn` parameter
|
|
|
|
} has {$has_lifetime ->
|
2023-01-18 03:23:50 -06:00
|
|
|
[true] lifetime `{$lifetime}`
|
|
|
|
*[false] an anonymous lifetime `'_`
|
2022-09-16 18:54:59 -05:00
|
|
|
} but calling `{$ident}` introduces an implicit `'static` lifetime requirement
|
|
|
|
|
|
|
|
infer_ril_introduced_here = `'static` requirement introduced here
|
|
|
|
infer_ril_introduced_by = requirement introduced by this return type
|
|
|
|
infer_ril_because_of = because of this returned expression
|
|
|
|
infer_ril_static_introduced_by = "`'static` lifetime requirement introduced by the return type
|