@@ -2051,11 +2051,17 @@ WARNING(wrap_objc_implementation_will_become_error,none,
20512051 (DiagnosticInfo *))
20522052
20532053ERROR(cdecl_not_at_top_level,none,
2054- " @_cdecl can only be applied to global functions" , ())
2054+ " %0 can only be applied to global functions" , (DeclAttribute ))
20552055ERROR(cdecl_empty_name,none,
2056- " @_cdecl symbol name cannot be empty" , ())
2056+ " %0 symbol name cannot be empty" , (DeclAttribute ))
20572057ERROR(cdecl_throws,none,
2058- " raising errors from '@_cdecl' functions is not supported" , ())
2058+ " raising errors from %0 functions is not supported" , (DeclAttribute))
2059+ ERROR(cdecl_incompatible_with_objc,none,
2060+ " cannot apply both '@cdecl' and '@objc' to %kindonly0" ,
2061+ (const Decl *))
2062+ ERROR(cdecl_feature_required,none,
2063+ " @cdecl requires '-enable-experimental-feature CDecl'" ,
2064+ ())
20592065
20602066// @_used and @_section
20612067ERROR(section_linkage_markers_disabled,none,
@@ -3736,9 +3742,9 @@ ERROR(enum_with_raw_type_case_with_argument,none,
37363742NOTE(enum_raw_type_here,none,
37373743 " declared raw type %0 here" , (Type))
37383744ERROR(objc_enum_no_raw_type,none,
3739- " '@objc ' enum must declare an integer raw type" , ())
3745+ " '%0 ' enum must declare an integer raw type" , (DeclAttribute ))
37403746ERROR(objc_enum_raw_type_not_integer,none,
3741- " '@objc ' enum raw type %0 is not an integer type" , (Type))
3747+ " '%0 ' enum raw type %1 is not an integer type" , (DeclAttribute, Type))
37423748ERROR(enum_non_integer_raw_value_auto_increment,none,
37433749 " enum case must declare a raw value when the preceding raw value is not an integer" , ())
37443750ERROR(enum_non_integer_convertible_raw_type_no_value,none,
@@ -5513,10 +5519,14 @@ FIXIT(insert_globalactor_attr, "@%0 ", (Type))
55135519ERROR(main_function_must_be_mainActor,none,
55145520 " main() must be '@MainActor'" , ())
55155521
5522+ // Keep aligned with enum ForeignLanguage
5523+ #define FOREIGN_LANG_SELECT " select{C|Objective-C}"
5524+
55165525ERROR (not_objc_function_async,none,
55175526 " 'async' %0 cannot be represented in Objective-C" , (DescriptiveDeclKind))
55185527NOTE(not_objc_function_type_async,none,
5519- " 'async' function types cannot be represented in Objective-C" , ())
5528+ " 'async' function types cannot be represented "
5529+ " in %" FOREIGN_LANG_SELECT " 0" , (ForeignLanguage))
55205530ERROR(actor_isolated_objc,none,
55215531 " actor-isolated %kind0 cannot be '@objc'" ,
55225532 (const ValueDecl *))
@@ -6523,7 +6533,7 @@ ERROR(objc_cannot_infer_name_raw_identifier,none,
65236533 (DescriptiveDeclKind))
65246534
65256535// If you change this, also change enum ObjCReason
6526- #define OBJC_ATTR_SELECT " select{marked '@_cdecl'|marked dynamic|marked '@objc'|marked '@objcMembers'|marked '@IBOutlet'|marked '@IBAction'|marked '@IBSegueAction'|marked '@NSManaged'|a member of an '@objc' protocol|implicitly '@objc'|an '@objc' override|an implementation of an '@objc' requirement|marked '@IBInspectable'|marked '@GKInspectable'|in an '@objc' extension of a class (without '@nonobjc')|in an '@objc @implementation' extension of a class (without final or '@nonobjc')|marked '@objc' by an access note}"
6536+ #define OBJC_ATTR_SELECT " select{marked '@cdecl'|marked '@ _cdecl'|marked dynamic|marked '@objc'|marked '@objcMembers'|marked '@IBOutlet'|marked '@IBAction'|marked '@IBSegueAction'|marked '@NSManaged'|a member of an '@objc' protocol|implicitly '@objc'|an '@objc' override|an implementation of an '@objc' requirement|marked '@IBInspectable'|marked '@GKInspectable'|in an '@objc' extension of a class (without '@nonobjc')|in an '@objc @implementation' extension of a class (without final or '@nonobjc')|marked '@objc' by an access note}"
65276537
65286538ERROR (objc_invalid_on_var,none,
65296539 " property cannot be %" OBJC_ATTR_SELECT " 0 "
@@ -6556,25 +6566,36 @@ NOTE(not_objc_error_protocol_composition,none,
65566566 " protocol-constrained type containing 'Error' cannot be represented "
65576567 " in Objective-C" , ())
65586568NOTE(not_objc_empty_tuple,none,
6559- " empty tuple type cannot be represented in Objective-C" , ())
6569+ " empty tuple type cannot be represented in %" FOREIGN_LANG_SELECT " 0" ,
6570+ (ForeignLanguage))
65606571NOTE(not_objc_non_trivial_cxx_class,none,
6561- " non-trivial C++ classes cannot be represented in Objective-C" , ())
6572+ " non-trivial C++ classes cannot be represented in "
6573+ " %" FOREIGN_LANG_SELECT " 0" ,
6574+ (ForeignLanguage))
65626575NOTE(not_objc_tuple,none,
6563- " tuples cannot be represented in Objective-C" , ())
6576+ " tuples cannot be represented in %" FOREIGN_LANG_SELECT " 0" ,
6577+ (ForeignLanguage))
65646578NOTE(not_objc_swift_class,none,
65656579 " classes not annotated with '@objc' cannot be represented "
65666580 " in Objective-C" , ())
65676581NOTE(not_objc_swift_struct,none,
6568- " Swift structs cannot be represented in Objective-C" , ())
6582+ " Swift structs cannot be represented in %" FOREIGN_LANG_SELECT " 0" ,
6583+ (ForeignLanguage))
65696584NOTE(not_objc_swift_enum,none,
65706585 " non-'@objc' enums cannot be represented in Objective-C" , ())
6586+ NOTE(not_cdecl_or_objc_swift_enum,none,
6587+ " Swift enums not marked '@cdecl'%select{| or '@objc'}0 cannot be "
6588+ " represented in %" FOREIGN_LANG_SELECT " 0" ,
6589+ (ForeignLanguage))
65716590NOTE(not_objc_generic_type_param,none,
6572- " generic type parameters cannot be represented in Objective-C" , ())
6591+ " generic type parameters cannot be represented in "
6592+ " %" FOREIGN_LANG_SELECT " 0" , (ForeignLanguage))
65736593NOTE(not_objc_function_type_param,none,
6574- " function types cannot be represented in Objective-C unless their "
6575- " parameters and returns can be" , ())
6594+ " function types cannot be represented in % " FOREIGN_LANG_SELECT " 0 "
6595+ " unless their parameters and returns can be" , (ForeignLanguage ))
65766596NOTE(not_objc_function_type_throwing,none,
6577- " throwing function types cannot be represented in Objective-C" , ())
6597+ " throwing function types cannot be represented in "
6598+ " %" FOREIGN_LANG_SELECT " 0" , (ForeignLanguage))
65786599NOTE(objc_inferring_on_objc_protocol_member,none,
65796600 " inferring '@objc' because the declaration is a member of "
65806601 " an '@objc' protocol" , ())
@@ -6584,6 +6605,11 @@ NOTE(objc_witness_objc_requirement,none,
65846605 " satisfying requirement for %kind0 in protocol %1" ,
65856606 (const ValueDecl *, const ProtocolDecl *))
65866607
6608+ NOTE(cdecl_incompatible_with_protocols,none,
6609+ " protocols cannot be represented in C" , ())
6610+ NOTE(cdecl_incompatible_with_classes,none,
6611+ " classes cannot be represented in C" , ())
6612+
65876613ERROR(no_opaque_return_type_of,none,
65886614 " unable to resolve type for _opaqueReturnTypeOf attribute" , ())
65896615
@@ -6596,20 +6622,24 @@ ERROR(objc_addressor, none,
65966622ERROR(objc_coroutine_accessor, none,
65976623 " 'read' and 'modify' accessors are not allowed to be marked '@objc'" , ())
65986624ERROR(objc_invalid_on_func_variadic,none,
6599- " method cannot be %" OBJC_ATTR_SELECT " 0 because it has a variadic "
6600- " parameter" , (unsigned ))
6625+ " %kindonly0 cannot be %" OBJC_ATTR_SELECT " 1 because it has a variadic "
6626+ " parameter" , (const AbstractFunctionDecl*, unsigned ))
66016627ERROR(objc_invalid_on_func_inout,none,
6602- " method cannot be %" OBJC_ATTR_SELECT " 0 because inout "
6603- " parameters cannot be represented in Objective-C" , (unsigned ))
6628+ " %kindonly0 cannot be %" OBJC_ATTR_SELECT " 1 because inout "
6629+ " parameters cannot be represented in %" FOREIGN_LANG_SELECT " 2" ,
6630+ (const AbstractFunctionDecl*, unsigned , ForeignLanguage))
66046631ERROR(objc_invalid_on_func_param_type,none,
6605- " method cannot be %" OBJC_ATTR_SELECT " 1 because the type of the "
6606- " parameter %0 cannot be represented in Objective-C" , (unsigned , unsigned ))
6632+ " %kindonly0 cannot be %" OBJC_ATTR_SELECT " 2 because the type of the "
6633+ " parameter %1 cannot be represented in %" FOREIGN_LANG_SELECT " 3" ,
6634+ (const AbstractFunctionDecl*, unsigned , unsigned , ForeignLanguage))
66076635ERROR(objc_invalid_on_func_single_param_type,none,
6608- " method cannot be %" OBJC_ATTR_SELECT " 0 because the type of the "
6609- " parameter cannot be represented in Objective-C" , (unsigned ))
6636+ " %kindonly0 cannot be %" OBJC_ATTR_SELECT " 1 because the type of the "
6637+ " parameter cannot be represented in %" FOREIGN_LANG_SELECT " 2" ,
6638+ (const AbstractFunctionDecl*, unsigned , ForeignLanguage))
66106639ERROR(objc_invalid_on_func_result_type,none,
6611- " method cannot be %" OBJC_ATTR_SELECT " 0 because its result type "
6612- " cannot be represented in Objective-C" , (unsigned ))
6640+ " %kindonly0 cannot be %" OBJC_ATTR_SELECT " 1 because its result type "
6641+ " cannot be represented in %" FOREIGN_LANG_SELECT " 2" ,
6642+ (const AbstractFunctionDecl*, unsigned , ForeignLanguage))
66136643ERROR(objc_invalid_on_foreign_class,none,
66146644 " method cannot be %" OBJC_ATTR_SELECT " 0 because Core Foundation "
66156645 " types are not classes in Objective-C" , (unsigned ))
@@ -6735,6 +6765,7 @@ ERROR(nonobjc_not_allowed,none,
67356765#undef OBJC_DIAG_SELECT_2
67366766#undef OBJC_DIAG_SELECT
67376767#undef OBJC_ATTR_SELECT
6768+ #undef FOREIGN_LANG_SELECT
67386769
67396770// ------------------------------------------------------------------------------
67406771// MARK: @exclusivity
0 commit comments