Skip to content

Swift 6.2 emits spurious retroactive conformance warnings that should be suppressed #85153

@tshortli

Description

@tshortli

Description

There are a lot of retroactive conformance warnings in the build log when building swift-frontend using Xcode 26 (Swift 6.2):

/Users/allan/Projects/swift/swift-project/swift/lib/ASTGen/Sources/ASTGen/Bridge.swift:36:1 extension declares a conformance of imported type 'BridgedNullableDecl' to imported protocol 'ExpressibleByNilLiteral'; this will not behave correctly if the owners of 'ASTBridging' introduce this conformance in the future
/Users/allan/Projects/swift/swift-project/swift/lib/ASTGen/Sources/ASTGen/Bridge.swift:37:1 extension declares a conformance of imported type 'BridgedNullableExpr' to imported protocol 'ExpressibleByNilLiteral'; this will not behave correctly if the owners of 'ASTBridging' introduce this conformance in the future
/Users/allan/Projects/swift/swift-project/swift/lib/ASTGen/Sources/ASTGen/Bridge.swift:38:1 extension declares a conformance of imported type 'BridgedNullableStmt' to imported protocol 'ExpressibleByNilLiteral'; this will not behave correctly if the owners of 'ASTBridging' introduce this conformance in the future
/Users/allan/Projects/swift/swift-project/swift/lib/ASTGen/Sources/ASTGen/Bridge.swift:39:1 extension declares a conformance of imported type 'BridgedNullableTypeRepr' to imported protocol 'ExpressibleByNilLiteral'; this will not behave correctly if the owners of 'ASTBridging' introduce this conformance in the future
/Users/allan/Projects/swift/swift-project/swift/lib/ASTGen/Sources/ASTGen/Bridge.swift:40:1 extension declares a conformance of imported type 'BridgedNullablePattern' to imported protocol 'ExpressibleByNilLiteral'; this will not behave correctly if the owners of 'ASTBridging' introduce this conformance in the future
/Users/allan/Projects/swift/swift-project/swift/lib/ASTGen/Sources/ASTGen/Bridge.swift:41:1 extension declares a conformance of imported type 'BridgedNullableGenericParamList' to imported protocol 'ExpressibleByNilLiteral'; this will not behave correctly if the owners of 'ASTBridging' introduce this conformance in the future
/Users/allan/Projects/swift/swift-project/swift/lib/ASTGen/Sources/ASTGen/Bridge.swift:42:1 extension declares a conformance of imported type 'BridgedNullableTrailingWhereClause' to imported protocol 'ExpressibleByNilLiteral'; this will not behave correctly if the owners of 'ASTBridging' introduce this conformance in the future
/Users/allan/Projects/swift/swift-project/swift/lib/ASTGen/Sources/ASTGen/Bridge.swift:43:1 extension declares a conformance of imported type 'BridgedNullableParameterList' to imported protocol 'ExpressibleByNilLiteral'; this will not behave correctly if the owners of 'ASTBridging' introduce this conformance in the future
/Users/allan/Projects/swift/swift-project/swift/lib/ASTGen/Sources/ASTGen/Bridge.swift:44:1 extension declares a conformance of imported type 'BridgedNullablePatternBindingInitializer' to imported protocol 'ExpressibleByNilLiteral'; this will not behave correctly if the owners of 'ASTBridging' introduce this conformance in the future
/Users/allan/Projects/swift/swift-project/swift/lib/ASTGen/Sources/ASTGen/Bridge.swift:45:1 extension declares a conformance of imported type 'BridgedNullableDefaultArgumentInitializer' to imported protocol 'ExpressibleByNilLiteral'; this will not behave correctly if the owners of 'ASTBridging' introduce this conformance in the future
/Users/allan/Projects/swift/swift-project/swift/lib/ASTGen/Sources/ASTGen/Bridge.swift:46:1 extension declares a conformance of imported type 'BridgedNullableCustomAttributeInitializer' to imported protocol 'ExpressibleByNilLiteral'; this will not behave correctly if the owners of 'ASTBridging' introduce this conformance in the future
/Users/allan/Projects/swift/swift-project/swift/lib/ASTGen/Sources/ASTGen/Bridge.swift:47:1 extension declares a conformance of imported type 'BridgedNullableArgumentList' to imported protocol 'ExpressibleByNilLiteral'; this will not behave correctly if the owners of 'ASTBridging' introduce this conformance in the future
/Users/allan/Projects/swift/swift-project/swift/lib/ASTGen/Sources/ASTGen/Bridge.swift:48:1 extension declares a conformance of imported type 'BridgedNullableVarDecl' to imported protocol 'ExpressibleByNilLiteral'; this will not behave correctly if the owners of 'ASTBridging' introduce this conformance in the future
/Users/allan/Projects/swift/swift-project/swift/lib/ASTGen/Sources/ASTGen/Bridge.swift:160:1 extension declares a conformance of imported type 'BridgedStringRef' to imported protocols 'ExpressibleByExtendedGraphemeClusterLiteral', 'ExpressibleByUnicodeScalarLiteral'; this will not behave correctly if the owners of 'BasicBridging' introduce this conformance in the future

Reproduction

import Foundation

// warning: Extension declares a conformance of imported type 'URL' to imported protocols 'ExpressibleByStringLiteral', 'ExpressibleByExtendedGraphemeClusterLiteral', 'ExpressibleByUnicodeScalarLiteral'; this will not behave correctly if the owners of 'Foundation' introduce this conformance in the future
extension URL: Swift.ExpressibleByStringInterpolation {
  public init(stringLiteral value: String) {
    fatalError()
  }
}

Expected behavior

These warnings should be suppressed by module qualification (e.g. extension Foo: Swift.ExpressibleByStringInterpolation).

Environment

swift-driver version: 1.127.12 Apple Swift version 6.2 (swiftlang-6.2.0.17.10 clang-1700.3.17.1)

Additional information

No response

Metadata

Metadata

Assignees

Labels

@retroactiveFeature → attributes: The @retroactive attributebugA deviation from expected or documented behavior. Also: expected but undesirable behavior.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions