@@ -8072,6 +8072,24 @@ NOTE(sending_function_result_with_sending_param_note, none,
8072
8072
// ------------------------------------------------------------------------------
8073
8073
ERROR(unsafe_attr_disabled,none,
8074
8074
" 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
+
8075
8093
GROUPED_WARNING(override_safe_withunsafe,Unsafe,none,
8076
8094
" override of safe %0 with unsafe %0" , (DescriptiveDeclKind))
8077
8095
GROUPED_WARNING(witness_unsafe,Unsafe,none,
@@ -8082,10 +8100,11 @@ GROUPED_WARNING(type_witness_unsafe,Unsafe,none,
8082
8100
(Type, DeclName))
8083
8101
GROUPED_WARNING(unchecked_conformance_is_unsafe,Unsafe,none,
8084
8102
" @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 *))
8089
8108
GROUPED_WARNING(reference_to_unsafe_decl,Unsafe,none,
8090
8109
" %select{reference|call}0 to unsafe %kindbase1" ,
8091
8110
(bool , const ValueDecl *))
0 commit comments