@@ -8072,6 +8072,24 @@ NOTE(sending_function_result_with_sending_param_note, none,
80728072// ------------------------------------------------------------------------------
80738073ERROR(unsafe_attr_disabled,none,
80748074 " attribute requires '-enable-experimental-feature AllowUnsafeAttribute'" , ())
8075+
8076+ GROUPED_WARNING(decl_involves_unsafe,Unsafe,none,
8077+ " %kindbase0 involves unsafe code; "
8078+ " use %select{'@unsafe' to indicate that its use is not memory-safe|"
8079+ " '@safe(unchecked)' to assert that the code is memory-safe}1" ,
8080+ (const Decl *, bool ))
8081+ NOTE(note_reference_to_unsafe_decl,none,
8082+ " %select{reference|call}0 to unsafe %kind1" ,
8083+ (bool , const ValueDecl *))
8084+ NOTE(note_reference_to_unsafe_typed_decl,none,
8085+ " %select{reference|call}0 to %kind1 involves unsafe type %2" ,
8086+ (bool , const ValueDecl *, Type))
8087+ NOTE(note_reference_to_nonisolated_unsafe,none,
8088+ " reference to nonisolated(unsafe) %kind0 is unsafe in concurrently-executing code" ,
8089+ (const ValueDecl *))
8090+ NOTE(note_reference_unowned_unsafe,none,
8091+ " reference to unowned(unsafe) %kind0 is unsafe" , (const ValueDecl *))
8092+
80758093GROUPED_WARNING(override_safe_withunsafe,Unsafe,none,
80768094 " override of safe %0 with unsafe %0" , (DescriptiveDeclKind))
80778095GROUPED_WARNING(witness_unsafe,Unsafe,none,
@@ -8082,10 +8100,11 @@ GROUPED_WARNING(type_witness_unsafe,Unsafe,none,
80828100 (Type, DeclName))
80838101GROUPED_WARNING(unchecked_conformance_is_unsafe,Unsafe,none,
80848102 " @unchecked conformance involves unsafe code" , ())
8085- GROUPED_WARNING(unowned_unsafe_is_unsafe,Unsafe,none,
8086- " unowned(unsafe) involves unsafe code" , ())
8087- GROUPED_WARNING(nonisolated_unsafe_is_unsafe,Unsafe,none,
8088- " nonisolated(unsafe) involves unsafe code" , ())
8103+ GROUPED_WARNING(reference_unowned_unsafe,Unsafe,none,
8104+ " reference to unowned(unsafe) %kind0 is unsafe" , (const ValueDecl *))
8105+ GROUPED_WARNING(reference_to_nonisolated_unsafe,Unsafe,none,
8106+ " reference to nonisolated(unsafe) %kind0 is unsafe in concurrently-executing code" ,
8107+ (const ValueDecl *))
80898108GROUPED_WARNING(reference_to_unsafe_decl,Unsafe,none,
80908109 " %select{reference|call}0 to unsafe %kindbase1" ,
80918110 (bool , const ValueDecl *))
0 commit comments