Files
swift-mirror/validation-test/compiler_crashers_fixed/createPropertyStoreOrCallSuperclassSetter-b15cc1.swift
Slava Pestov f05d1cab32 Sema: Fix crash when declaring an old-style variadic parameter with nonescaping type
This is not supported for the same reason you can't have a noncopyable
variadic parameter, but the code was hard-coded to check for copyability
only.

Generalize this to apply the generic signature for Array via the
common code path, and add a custom note to explain why those requirements
are checked in the first place.

Cleaning this up also fixed some fuzzer crashes.

Reported on the forums:
https://forums.swift.org/t/variadic-escapable-arguments-crash-the-compiler/86727/2
2026-05-18 10:49:23 -04:00

11 lines
771 B
Swift

// {"kind":"typecheck","original":"1098007b","signature":"createPropertyStoreOrCallSuperclassSetter(swift::AccessorDecl*, swift::Expr*, swift::AbstractStorageDecl*, (anonymous namespace)::TargetImpl, llvm::SmallVectorImpl<swift::ASTNode>&, swift::ASTContext&)","signatureAssert":"Assertion failed: (destType->getOptionalObjectType()->isEqual(value->getType())), function createPropertyStoreOrCallSuperclassSetter","signatureNext":"synthesizeTrivialSetterBodyWithStorage"}
// RUN: not %target-swift-frontend -typecheck %s
@propertyWrapper struct a<b, c> {
wrappedValue: [c: b] static subscript<d>(_enclosingInstance e: d, wrapped f: ReferenceWritableKeyPath<d, [c: b]>,
storage g: ReferenceWritableKeyPath<d, Self>
) -> b?
}
class h {
@a var i: [String: Int]
}