Skip to content

Commit d0ba8fd

Browse files
Merge pull request #72856 from nate-chandler/rdar125934050
[BitwiseCopyable] Remove bespoke diagnostic.
2 parents ac1ce06 + 6d57eab commit d0ba8fd

File tree

3 files changed

+6
-15
lines changed

3 files changed

+6
-15
lines changed

include/swift/AST/DiagnosticsSema.def

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7682,8 +7682,6 @@ ERROR(non_bitwise_copyable_type_indirect_enum_element,none,
76827682
"enum with indirect case cannot conform to 'BitwiseCopyable'", ())
76837683
NOTE(note_non_bitwise_copyable_type_indirect_enum_element,none,
76847684
"indirect case is here", ())
7685-
ERROR(non_bitwise_copyable_type_noncopyable,none,
7686-
"noncopyable type cannot conform to 'BitwiseCopyable'", ())
76877685
ERROR(non_bitwise_copyable_type_cxx_nontrivial,none,
76887686
"non-trivial C++ type cannot conform to 'BitwiseCopyable'", ())
76897687
ERROR(non_bitwise_copyable_c_type_nontrivial,none,

lib/Sema/TypeCheckBitwise.cpp

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -232,13 +232,6 @@ static bool checkBitwiseCopyableInstanceStorage(NominalTypeDecl *nominal,
232232
assert(dc->getParentModule()->getASTContext().getProtocol(
233233
KnownProtocolKind::BitwiseCopyable));
234234

235-
if (dc->mapTypeIntoContext(nominal->getDeclaredInterfaceType())->isNoncopyable()) {
236-
if (!isImplicit(check)) {
237-
nominal->diagnose(diag::non_bitwise_copyable_type_noncopyable);
238-
}
239-
return true;
240-
}
241-
242235
if (isa<ClassDecl>(nominal)) {
243236
if (!isImplicit(check)) {
244237
nominal->diagnose(diag::non_bitwise_copyable_type_class);

test/Sema/bitwise_copyable.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66
// RUN: -enable-builtin-module \
77
// RUN: -debug-diagnostic-names
88

9-
// XFAIL: *
10-
119
//==============================================================================
1210
//===========================DEPENDENCY-FREE TESTS=(BEGIN)===================={{
1311
//==============================================================================
@@ -145,7 +143,7 @@ func passInt(_ i: Int) { take3(i) }
145143

146144
func passTupleIntInt(_ t: (Int, Int)) { take3(t) }
147145

148-
func passFWI<T : FixedWidthInteger>(_ t: T) { take3(t) }
146+
149147

150148
func passFloat(_ f: Float) { take3(f) }
151149

@@ -190,9 +188,11 @@ struct S_Explicit_With_2_BitwiseCopyable_Generic_Optional<T : _BitwiseCopyable>
190188
var o2: T?
191189
}
192190

193-
struct S_Explicit_Nonescapable : ~Escapable, _BitwiseCopyable {} // expected-error{{non_bitwise_copyable_type_nonescapable}}
191+
// TODO: When the standard library is built with NonescapableTypes, this should
192+
// be uncommented.
193+
//struct S_Explicit_Nonescapable : ~Escapable, _BitwiseCopyable {}
194194

195-
struct S_Explicit_Noncopyable : ~Copyable, _BitwiseCopyable {} // expected-error{{non_bitwise_copyable_type_noncopyable}}
195+
struct S_Explicit_Noncopyable : ~Copyable, _BitwiseCopyable {} // expected-error{{type_does_not_conform}}
196196

197197
struct S_Implicit_Nonescapable : ~Escapable {}
198198

@@ -256,7 +256,7 @@ func passUnsafeContinuation<T : _BitwiseCopyable, U : Error & _BitwiseCopyable>(
256256
take4(c)
257257
}
258258

259-
extension UnsafeContinuation : @retroactive _BitwiseCopyable {}
259+
extension UnsafeContinuation : @retroactive _BitwiseCopyable {} // expected-error{{conformance to 'BitwiseCopyable' must occur in the same module as generic struct 'UnsafeContinuation'}}
260260

261261
//==============================================================================
262262
//========================_CONCURRENCY-DEPENDENCY TESTS=(END)=================}}

0 commit comments

Comments
 (0)