1 use rustc_macros
::{Diagnostic, Subdiagnostic}
;
3 symbol
::{Ident, Symbol}
,
7 use crate::{late::PatternSource, Res}
;
10 #[diag(resolve_parent_module_reset_for_binding, code = "E0637")]
11 pub(crate) struct ParentModuleResetForBinding
;
14 #[diag(resolve_ampersand_used_without_explicit_lifetime_name, code = "E0637")]
16 pub(crate) struct AmpersandUsedWithoutExplicitLifetimeName(#[primary_span] pub(crate) Span);
19 #[diag(resolve_underscore_lifetime_name_cannot_be_used_here, code = "E0637")]
21 pub(crate) struct UnderscoreLifetimeNameCannotBeUsedHere(#[primary_span] pub(crate) Span);
24 #[diag(resolve_crate_may_not_be_imported)]
25 pub(crate) struct CrateMayNotBeImported(#[primary_span] pub(crate) Span);
28 #[diag(resolve_crate_root_imports_must_be_named_explicitly)]
29 pub(crate) struct CrateRootNamesMustBeNamedExplicitly(#[primary_span] pub(crate) Span);
32 #[diag(resolve_crate_root_imports_must_be_named_explicitly)]
33 pub(crate) struct ResolutionError(#[primary_span] pub(crate) Span);
36 #[diag(resolve_generic_params_from_outer_item, code = "E0401")]
37 pub(crate) struct GenericParamsFromOuterItem
{
40 pub(crate) span
: Span
,
42 pub(crate) label
: Option
<GenericParamsFromOuterItemLabel
>,
43 #[label(resolve_refer_to_type_directly)]
44 pub(crate) refer_to_type_directly
: Option
<Span
>,
46 pub(crate) sugg
: Option
<GenericParamsFromOuterItemSugg
>,
49 #[derive(Subdiagnostic)]
50 pub(crate) enum GenericParamsFromOuterItemLabel
{
51 #[label(resolve_generic_params_from_outer_item_self_ty_param)]
52 SelfTyParam(#[primary_span] Span),
53 #[label(resolve_generic_params_from_outer_item_self_ty_alias)]
54 SelfTyAlias(#[primary_span] Span),
55 #[label(resolve_generic_params_from_outer_item_ty_param)]
56 TyParam(#[primary_span] Span),
57 #[label(resolve_generic_params_from_outer_item_const_param)]
58 ConstParam(#[primary_span] Span),
61 #[derive(Subdiagnostic)]
62 #[suggestion(resolve_suggestion, code = "{snippet}", applicability = "maybe-incorrect")]
63 pub(crate) struct GenericParamsFromOuterItemSugg
{
65 pub(crate) span
: Span
,
66 pub(crate) snippet
: String
,
70 #[diag(resolve_name_is_already_used_as_generic_parameter, code = "E0403")]
71 pub(crate) struct NameAlreadyUsedInParameterList
{
74 pub(crate) span
: Span
,
75 #[label(resolve_first_use_of_name)]
76 pub(crate) first_use_span
: Span
,
77 pub(crate) name
: Symbol
,
81 #[diag(resolve_method_not_member_of_trait, code = "E0407")]
82 pub(crate) struct MethodNotMemberOfTrait
{
85 pub(crate) span
: Span
,
86 pub(crate) method
: Ident
,
87 pub(crate) trait_
: String
,
89 pub(crate) sub
: Option
<AssociatedFnWithSimilarNameExists
>,
92 #[derive(Subdiagnostic)]
94 resolve_associated_fn_with_similar_name_exists
,
96 applicability
= "maybe-incorrect"
98 pub(crate) struct AssociatedFnWithSimilarNameExists
{
100 pub(crate) span
: Span
,
101 pub(crate) candidate
: Symbol
,
104 #[derive(Diagnostic)]
105 #[diag(resolve_type_not_member_of_trait, code = "E0437")]
106 pub(crate) struct TypeNotMemberOfTrait
{
109 pub(crate) span
: Span
,
110 pub(crate) type_
: Ident
,
111 pub(crate) trait_
: String
,
113 pub(crate) sub
: Option
<AssociatedTypeWithSimilarNameExists
>,
116 #[derive(Subdiagnostic)]
118 resolve_associated_type_with_similar_name_exists
,
119 code
= "{candidate}",
120 applicability
= "maybe-incorrect"
122 pub(crate) struct AssociatedTypeWithSimilarNameExists
{
124 pub(crate) span
: Span
,
125 pub(crate) candidate
: Symbol
,
128 #[derive(Diagnostic)]
129 #[diag(resolve_const_not_member_of_trait, code = "E0438")]
130 pub(crate) struct ConstNotMemberOfTrait
{
133 pub(crate) span
: Span
,
134 pub(crate) const_
: Ident
,
135 pub(crate) trait_
: String
,
137 pub(crate) sub
: Option
<AssociatedConstWithSimilarNameExists
>,
140 #[derive(Subdiagnostic)]
142 resolve_associated_const_with_similar_name_exists
,
143 code
= "{candidate}",
144 applicability
= "maybe-incorrect"
146 pub(crate) struct AssociatedConstWithSimilarNameExists
{
148 pub(crate) span
: Span
,
149 pub(crate) candidate
: Symbol
,
152 #[derive(Diagnostic)]
153 #[diag(resolve_variable_bound_with_different_mode, code = "E0409")]
154 pub(crate) struct VariableBoundWithDifferentMode
{
157 pub(crate) span
: Span
,
158 #[label(resolve_first_binding_span)]
159 pub(crate) first_binding_span
: Span
,
160 pub(crate) variable_name
: Symbol
,
163 #[derive(Diagnostic)]
164 #[diag(resolve_ident_bound_more_than_once_in_parameter_list, code = "E0415")]
165 pub(crate) struct IdentifierBoundMoreThanOnceInParameterList
{
168 pub(crate) span
: Span
,
169 pub(crate) identifier
: Symbol
,
172 #[derive(Diagnostic)]
173 #[diag(resolve_ident_bound_more_than_once_in_same_pattern, code = "E0416")]
174 pub(crate) struct IdentifierBoundMoreThanOnceInSamePattern
{
177 pub(crate) span
: Span
,
178 pub(crate) identifier
: Symbol
,
181 #[derive(Diagnostic)]
182 #[diag(resolve_undeclared_label, code = "E0426")]
183 pub(crate) struct UndeclaredLabel
{
186 pub(crate) span
: Span
,
187 pub(crate) name
: Symbol
,
189 pub(crate) sub_reachable
: Option
<LabelWithSimilarNameReachable
>,
191 pub(crate) sub_reachable_suggestion
: Option
<TryUsingSimilarlyNamedLabel
>,
193 pub(crate) sub_unreachable
: Option
<UnreachableLabelWithSimilarNameExists
>,
196 #[derive(Subdiagnostic)]
197 #[label(resolve_label_with_similar_name_reachable)]
198 pub(crate) struct LabelWithSimilarNameReachable(#[primary_span] pub(crate) Span);
200 #[derive(Subdiagnostic)]
202 resolve_try_using_similarly_named_label
,
203 code
= "{ident_name}",
204 applicability
= "maybe-incorrect"
206 pub(crate) struct TryUsingSimilarlyNamedLabel
{
208 pub(crate) span
: Span
,
209 pub(crate) ident_name
: Symbol
,
212 #[derive(Subdiagnostic)]
213 #[label(resolve_unreachable_label_with_similar_name_exists)]
214 pub(crate) struct UnreachableLabelWithSimilarNameExists
{
216 pub(crate) ident_span
: Span
,
219 #[derive(Diagnostic)]
220 #[diag(resolve_self_import_can_only_appear_once_in_the_list, code = "E0430")]
221 pub(crate) struct SelfImportCanOnlyAppearOnceInTheList
{
224 pub(crate) span
: Span
,
227 #[derive(Diagnostic)]
228 #[diag(resolve_self_import_only_in_import_list_with_non_empty_prefix, code = "E0431")]
229 pub(crate) struct SelfImportOnlyInImportListWithNonEmptyPrefix
{
232 pub(crate) span
: Span
,
235 #[derive(Diagnostic)]
236 #[diag(resolve_cannot_capture_dynamic_environment_in_fn_item, code = "E0434")]
238 pub(crate) struct CannotCaptureDynamicEnvironmentInFnItem
{
240 pub(crate) span
: Span
,
243 #[derive(Diagnostic)]
244 #[diag(resolve_attempt_to_use_non_constant_value_in_constant, code = "E0435")]
245 pub(crate) struct AttemptToUseNonConstantValueInConstant
<'a
> {
247 pub(crate) span
: Span
,
249 pub(crate) with
: Option
<AttemptToUseNonConstantValueInConstantWithSuggestion
<'a
>>,
251 pub(crate) with_label
: Option
<AttemptToUseNonConstantValueInConstantLabelWithSuggestion
>,
253 pub(crate) without
: Option
<AttemptToUseNonConstantValueInConstantWithoutSuggestion
<'a
>>,
256 #[derive(Subdiagnostic)]
258 resolve_attempt_to_use_non_constant_value_in_constant_with_suggestion
,
259 code
= "{suggestion} {ident}",
260 applicability
= "maybe-incorrect"
262 pub(crate) struct AttemptToUseNonConstantValueInConstantWithSuggestion
<'a
> {
264 pub(crate) span
: Span
,
265 pub(crate) ident
: Ident
,
266 pub(crate) suggestion
: &'a
str,
267 pub(crate) current
: &'a
str,
270 #[derive(Subdiagnostic)]
271 #[label(resolve_attempt_to_use_non_constant_value_in_constant_label_with_suggestion)]
272 pub(crate) struct AttemptToUseNonConstantValueInConstantLabelWithSuggestion
{
274 pub(crate) span
: Span
,
277 #[derive(Subdiagnostic)]
278 #[label(resolve_attempt_to_use_non_constant_value_in_constant_without_suggestion)]
279 pub(crate) struct AttemptToUseNonConstantValueInConstantWithoutSuggestion
<'a
> {
281 pub(crate) ident_span
: Span
,
282 pub(crate) suggestion
: &'a
str,
285 #[derive(Diagnostic)]
286 #[diag(resolve_self_imports_only_allowed_within, code = "E0429")]
287 pub(crate) struct SelfImportsOnlyAllowedWithin
{
289 pub(crate) span
: Span
,
291 pub(crate) suggestion
: Option
<SelfImportsOnlyAllowedWithinSuggestion
>,
293 pub(crate) mpart_suggestion
: Option
<SelfImportsOnlyAllowedWithinMultipartSuggestion
>,
296 #[derive(Subdiagnostic)]
298 resolve_self_imports_only_allowed_within_suggestion
,
300 applicability
= "machine-applicable"
302 pub(crate) struct SelfImportsOnlyAllowedWithinSuggestion
{
304 pub(crate) span
: Span
,
307 #[derive(Subdiagnostic)]
308 #[multipart_suggestion(
309 resolve_self_imports_only_allowed_within_multipart_suggestion
,
310 applicability
= "machine-applicable"
312 pub(crate) struct SelfImportsOnlyAllowedWithinMultipartSuggestion
{
313 #[suggestion_part(code = "{{")]
314 pub(crate) multipart_start
: Span
,
315 #[suggestion_part(code = "}}")]
316 pub(crate) multipart_end
: Span
,
319 #[derive(Diagnostic)]
320 #[diag(resolve_binding_shadows_something_unacceptable, code = "E0530")]
321 pub(crate) struct BindingShadowsSomethingUnacceptable
<'a
> {
324 pub(crate) span
: Span
,
325 pub(crate) shadowing_binding
: PatternSource
,
326 pub(crate) shadowed_binding
: Res
,
327 pub(crate) article
: &'a
str,
329 pub(crate) sub_suggestion
: Option
<BindingShadowsSomethingUnacceptableSuggestion
>,
330 #[label(resolve_label_shadowed_binding)]
331 pub(crate) shadowed_binding_span
: Span
,
332 pub(crate) participle
: &'a
str,
333 pub(crate) name
: Symbol
,
336 #[derive(Subdiagnostic)]
338 resolve_binding_shadows_something_unacceptable_suggestion
,
340 applicability
= "unspecified"
342 pub(crate) struct BindingShadowsSomethingUnacceptableSuggestion
{
344 pub(crate) span
: Span
,
345 pub(crate) name
: Symbol
,
348 #[derive(Diagnostic)]
349 #[diag(resolve_forward_declared_generic_param, code = "E0128")]
350 pub(crate) struct ForwardDeclaredGenericParam
{
353 pub(crate) span
: Span
,
356 #[derive(Diagnostic)]
357 #[diag(resolve_param_in_ty_of_const_param, code = "E0770")]
358 pub(crate) struct ParamInTyOfConstParam
{
361 pub(crate) span
: Span
,
362 pub(crate) name
: Symbol
,
364 pub(crate) param_kind
: Option
<ParamKindInTyOfConstParam
>,
368 #[derive(Subdiagnostic)]
369 pub(crate) enum ParamKindInTyOfConstParam
{
370 #[note(resolve_type_param_in_ty_of_const_param)]
372 #[note(resolve_const_param_in_ty_of_const_param)]
374 #[note(resolve_lifetime_param_in_ty_of_const_param)]
378 #[derive(Diagnostic)]
379 #[diag(resolve_self_in_generic_param_default, code = "E0735")]
380 pub(crate) struct SelfInGenericParamDefault
{
383 pub(crate) span
: Span
,
386 #[derive(Diagnostic)]
387 #[diag(resolve_param_in_non_trivial_anon_const)]
388 pub(crate) struct ParamInNonTrivialAnonConst
{
391 pub(crate) span
: Span
,
392 pub(crate) name
: Symbol
,
394 pub(crate) param_kind
: ParamKindInNonTrivialAnonConst
,
396 pub(crate) help
: Option
<ParamInNonTrivialAnonConstHelp
>,
399 #[derive(Subdiagnostic)]
400 #[help(resolve_param_in_non_trivial_anon_const_help)]
401 pub(crate) struct ParamInNonTrivialAnonConstHelp
;
404 #[derive(Subdiagnostic)]
405 pub(crate) enum ParamKindInNonTrivialAnonConst
{
406 #[note(resolve_type_param_in_non_trivial_anon_const)]
408 #[help(resolve_const_param_in_non_trivial_anon_const)]
409 Const { name: Symbol }
,
410 #[note(resolve_lifetime_param_in_non_trivial_anon_const)]
414 #[derive(Diagnostic)]
415 #[diag(resolve_unreachable_label, code = "E0767")]
417 pub(crate) struct UnreachableLabel
{
420 pub(crate) span
: Span
,
421 pub(crate) name
: Symbol
,
422 #[label(resolve_label_definition_span)]
423 pub(crate) definition_span
: Span
,
425 pub(crate) sub_suggestion
: Option
<UnreachableLabelSubSuggestion
>,
427 pub(crate) sub_suggestion_label
: Option
<UnreachableLabelSubLabel
>,
429 pub(crate) sub_unreachable_label
: Option
<UnreachableLabelSubLabelUnreachable
>,
432 #[derive(Subdiagnostic)]
434 resolve_unreachable_label_suggestion_use_similarly_named
,
435 code
= "{ident_name}",
436 applicability
= "maybe-incorrect"
438 pub(crate) struct UnreachableLabelSubSuggestion
{
440 pub(crate) span
: Span
,
441 pub(crate) ident_name
: Symbol
,
444 #[derive(Subdiagnostic)]
445 #[label(resolve_unreachable_label_similar_name_reachable)]
446 pub(crate) struct UnreachableLabelSubLabel
{
448 pub(crate) ident_span
: Span
,
451 #[derive(Subdiagnostic)]
452 #[label(resolve_unreachable_label_similar_name_unreachable)]
453 pub(crate) struct UnreachableLabelSubLabelUnreachable
{
455 pub(crate) ident_span
: Span
,
458 #[derive(Diagnostic)]
459 #[diag(resolve_trait_impl_mismatch, code = "{code}")]
460 pub(crate) struct TraitImplMismatch
{
463 pub(crate) span
: Span
,
464 pub(crate) name
: Symbol
,
465 pub(crate) kind
: String
,
466 #[label(resolve_label_trait_item)]
467 pub(crate) trait_item_span
: Span
,
468 pub(crate) trait_path
: String
,
469 pub(crate) code
: String
,
472 #[derive(Diagnostic)]
473 #[diag(resolve_invalid_asm_sym)]
475 pub(crate) struct InvalidAsmSym
{
478 pub(crate) span
: Span
,
481 #[derive(Diagnostic)]
482 #[diag(resolve_lowercase_self)]
483 pub(crate) struct LowercaseSelf
{
485 #[suggestion(code = "Self", applicability = "maybe-incorrect", style = "short")]
486 pub(crate) span
: Span
,
489 #[derive(Diagnostic)]
490 #[diag(resolve_trait_impl_duplicate, code = "E0201")]
491 pub(crate) struct TraitImplDuplicate
{
494 pub(crate) span
: Span
,
495 #[label(resolve_old_span_label)]
496 pub(crate) old_span
: Span
,
497 #[label(resolve_trait_item_span)]
498 pub(crate) trait_item_span
: Span
,
499 pub(crate) name
: Symbol
,
502 #[derive(Diagnostic)]
503 #[diag(resolve_relative_2018)]
504 pub(crate) struct Relative2018
{
506 pub(crate) span
: Span
,
507 #[suggestion(code = "crate::{path_str}", applicability = "maybe-incorrect")]
508 pub(crate) path_span
: Span
,
509 pub(crate) path_str
: String
,
512 #[derive(Diagnostic)]
513 #[diag(resolve_ancestor_only, code = "E0742")]
514 pub(crate) struct AncestorOnly(#[primary_span] pub(crate) Span);
516 #[derive(Diagnostic)]
517 #[diag(resolve_expected_found, code = "E0577")]
518 pub(crate) struct ExpectedFound
{
521 pub(crate) span
: Span
,
523 pub(crate) path_str
: String
,
526 #[derive(Diagnostic)]
527 #[diag(resolve_indeterminate, code = "E0578")]
528 pub(crate) struct Indeterminate(#[primary_span] pub(crate) Span);
530 #[derive(Diagnostic)]
531 #[diag(resolve_tool_module_imported)]
532 pub(crate) struct ToolModuleImported
{
534 pub(crate) span
: Span
,
536 pub(crate) import
: Span
,
539 #[derive(Diagnostic)]
540 #[diag(resolve_module_only)]
541 pub(crate) struct ModuleOnly(#[primary_span] pub(crate) Span);
543 #[derive(Diagnostic, Default)]
544 #[diag(resolve_macro_expected_found)]
545 pub(crate) struct MacroExpectedFound
<'a
> {
547 pub(crate) span
: Span
,
548 pub(crate) found
: &'a
str,
549 pub(crate) expected
: &'a
str,
550 pub(crate) macro_path
: &'a
str,
552 pub(crate) remove_surrounding_derive
: Option
<RemoveSurroundingDerive
>,
554 pub(crate) add_as_non_derive
: Option
<AddAsNonDerive
<'a
>>,
557 #[derive(Subdiagnostic)]
558 #[help(resolve_remove_surrounding_derive)]
559 pub(crate) struct RemoveSurroundingDerive
{
561 pub(crate) span
: Span
,
564 #[derive(Subdiagnostic)]
565 #[help(resolve_add_as_non_derive)]
566 pub(crate) struct AddAsNonDerive
<'a
> {
567 pub(crate) macro_path
: &'a
str,
570 #[derive(Diagnostic)]
571 #[diag(resolve_proc_macro_same_crate)]
572 pub(crate) struct ProcMacroSameCrate
{
574 pub(crate) span
: Span
,
576 pub(crate) is_test
: bool
,
579 #[derive(Diagnostic)]
580 #[diag(resolve_imported_crate)]
581 pub(crate) struct CrateImported
{
583 pub(crate) span
: Span
,
586 #[derive(Diagnostic)]
587 #[diag(resolve_macro_use_extern_crate_self)]
588 pub(crate) struct MacroUseExternCrateSelf
{
590 pub(crate) span
: Span
,
593 #[derive(Diagnostic)]
594 #[diag(resolve_accessible_unsure)]
596 pub(crate) struct CfgAccessibleUnsure
{
598 pub(crate) span
: Span
,
602 #[derive(Diagnostic)]
603 #[diag(resolve_param_in_enum_discriminant)]
604 pub(crate) struct ParamInEnumDiscriminant
{
607 pub(crate) span
: Span
,
608 pub(crate) name
: Symbol
,
610 pub(crate) param_kind
: ParamKindInEnumDiscriminant
,
614 #[derive(Subdiagnostic)]
615 pub(crate) enum ParamKindInEnumDiscriminant
{
616 #[note(resolve_type_param_in_enum_discriminant)]
618 #[note(resolve_const_param_in_enum_discriminant)]
620 #[note(resolve_lifetime_param_in_enum_discriminant)]
624 #[derive(Subdiagnostic)]
625 #[label(resolve_change_import_binding)]
626 pub(crate) struct ChangeImportBinding
{
628 pub(crate) span
: Span
,
631 #[derive(Subdiagnostic)]
633 resolve_change_import_binding
,
634 code
= "{suggestion}",
635 applicability
= "maybe-incorrect"
637 pub(crate) struct ChangeImportBindingSuggestion
{
639 pub(crate) span
: Span
,
640 pub(crate) suggestion
: String
,
643 #[derive(Diagnostic)]
644 #[diag(resolve_imports_cannot_refer_to)]
645 pub(crate) struct ImportsCannotReferTo
<'a
> {
647 pub(crate) span
: Span
,
648 pub(crate) what
: &'a
str,
651 #[derive(Diagnostic)]
652 #[diag(resolve_cannot_find_ident_in_this_scope)]
653 pub(crate) struct CannotFindIdentInThisScope
<'a
> {
655 pub(crate) span
: Span
,
656 pub(crate) expected
: &'a
str,
657 pub(crate) ident
: Ident
,
660 #[derive(Subdiagnostic)]
661 #[note(resolve_explicit_unsafe_traits)]
662 pub(crate) struct ExplicitUnsafeTraits
{
664 pub(crate) span
: Span
,
665 pub(crate) ident
: Ident
,
668 #[derive(Subdiagnostic)]
669 #[note(resolve_missing_macro_rules_name)]
670 pub(crate) struct MaybeMissingMacroRulesName
{
672 pub(crate) span
: Span
,
675 #[derive(Subdiagnostic)]
676 #[help(resolve_added_macro_use)]
677 pub(crate) struct AddedMacroUse
;
679 #[derive(Subdiagnostic)]
681 resolve_consider_adding_a_derive
,
682 code
= "{suggestion}",
683 applicability
= "maybe-incorrect"
685 pub(crate) struct ConsiderAddingADerive
{
687 pub(crate) span
: Span
,
688 pub(crate) suggestion
: String
,
691 #[derive(Diagnostic)]
692 #[diag(resolve_cannot_determine_import_resolution)]
693 pub(crate) struct CannotDetermineImportResolution
{
695 pub(crate) span
: Span
,
698 #[derive(Diagnostic)]
699 #[diag(resolve_cannot_determine_macro_resolution)]
701 pub(crate) struct CannotDetermineMacroResolution
{
703 pub(crate) span
: Span
,
704 pub(crate) kind
: &'
static str,
705 pub(crate) path
: String
,
708 #[derive(Diagnostic)]
709 #[diag(resolve_cannot_be_reexported_private, code = "E0364")]
710 pub(crate) struct CannotBeReexportedPrivate
{
712 pub(crate) span
: Span
,
713 pub(crate) ident
: Ident
,
716 #[derive(Diagnostic)]
717 #[diag(resolve_cannot_be_reexported_crate_public, code = "E0364")]
718 pub(crate) struct CannotBeReexportedCratePublic
{
720 pub(crate) span
: Span
,
721 pub(crate) ident
: Ident
,
724 #[derive(Diagnostic)]
725 #[diag(resolve_cannot_be_reexported_private, code = "E0365")]
726 #[note(resolve_consider_declaring_with_pub)]
727 pub(crate) struct CannotBeReexportedPrivateNS
{
729 #[label(resolve_reexport_of_private)]
730 pub(crate) span
: Span
,
731 pub(crate) ident
: Ident
,
734 #[derive(Diagnostic)]
735 #[diag(resolve_cannot_be_reexported_crate_public, code = "E0365")]
736 #[note(resolve_consider_declaring_with_pub)]
737 pub(crate) struct CannotBeReexportedCratePublicNS
{
739 #[label(resolve_reexport_of_crate_public)]
740 pub(crate) span
: Span
,
741 pub(crate) ident
: Ident
,
744 #[derive(Subdiagnostic)]
745 #[help(resolve_consider_adding_macro_export)]
746 pub(crate) struct ConsiderAddingMacroExport
{
748 pub(crate) span
: Span
,
751 #[derive(Subdiagnostic)]
752 #[note(resolve_consider_marking_as_pub)]
753 pub(crate) struct ConsiderMarkingAsPub
{
755 pub(crate) span
: Span
,
756 pub(crate) ident
: Ident
,
759 #[derive(Diagnostic)]
760 #[diag(resolve_cannot_glob_import_possible_crates)]
761 pub(crate) struct CannotGlobImportAllCrates
{
763 pub(crate) span
: Span
,
766 #[derive(Diagnostic)]
767 #[diag(resolve_items_in_traits_are_not_importable)]
768 pub(crate) struct ItemsInTraitsAreNotImportable
{
770 pub(crate) span
: Span
,
773 #[derive(Diagnostic)]
774 #[diag(resolve_is_not_directly_importable, code = "E0253")]
775 pub(crate) struct IsNotDirectlyImportable
{
778 pub(crate) span
: Span
,
779 pub(crate) target
: Ident
,