mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
[SE-0458] Don't warn about unsafe conformances outside of strict safety mode
This commit is contained in:
@@ -296,6 +296,13 @@ bool swift::enumerateUnsafeUses(ArrayRef<ProtocolConformanceRef> conformances,
|
||||
SourceLoc loc,
|
||||
llvm::function_ref<bool(UnsafeUse)> fn) {
|
||||
for (auto conformance : conformances) {
|
||||
if (conformance.isInvalid())
|
||||
continue;
|
||||
|
||||
ASTContext &ctx = conformance.getRequirement()->getASTContext();
|
||||
if (!ctx.LangOpts.hasFeature(Feature::WarnUnsafe))
|
||||
return false;
|
||||
|
||||
if (!conformance.hasEffect(EffectKind::Unsafe))
|
||||
continue;
|
||||
|
||||
|
||||
12
test/Unsafe/unsafe_in_unsafe.swift
Normal file
12
test/Unsafe/unsafe_in_unsafe.swift
Normal file
@@ -0,0 +1,12 @@
|
||||
// RUN: %target-typecheck-verify-swift -enable-experimental-feature AllowUnsafeAttribute -print-diagnostic-groups
|
||||
|
||||
// REQUIRES: swift_feature_AllowUnsafeAttribute
|
||||
|
||||
|
||||
protocol P { }
|
||||
|
||||
struct X: @unsafe P { }
|
||||
|
||||
func returnMe(x: X) -> any P {
|
||||
x
|
||||
}
|
||||
Reference in New Issue
Block a user