From ebd97bb3a0cb719cfd7069847c654e1a1df05648 Mon Sep 17 00:00:00 2001 From: Hamish Knight Date: Mon, 10 Nov 2025 10:40:35 +0000 Subject: [PATCH 1/3] [test] Update a couple of crasher signatures --- ...ntImpl-78f127.swift => Constraint-Constraint-78f127.swift} | 2 +- .../ConstraintSystem-diagnoseAmbiguityWithFixes-963e71.swift | 4 ---- ...iagnoseContextualFunctionCallGenericAmbiguity-963e71.swift | 4 ++++ 3 files changed, 5 insertions(+), 5 deletions(-) rename validation-test/IDE/crashers/{ConstraintSystem-addConstraintImpl-78f127.swift => Constraint-Constraint-78f127.swift} (55%) delete mode 100644 validation-test/compiler_crashers/ConstraintSystem-diagnoseAmbiguityWithFixes-963e71.swift create mode 100644 validation-test/compiler_crashers/diagnoseContextualFunctionCallGenericAmbiguity-963e71.swift diff --git a/validation-test/IDE/crashers/ConstraintSystem-addConstraintImpl-78f127.swift b/validation-test/IDE/crashers/Constraint-Constraint-78f127.swift similarity index 55% rename from validation-test/IDE/crashers/ConstraintSystem-addConstraintImpl-78f127.swift rename to validation-test/IDE/crashers/Constraint-Constraint-78f127.swift index 63cf32cd78b88..3ce9464980941 100644 --- a/validation-test/IDE/crashers/ConstraintSystem-addConstraintImpl-78f127.swift +++ b/validation-test/IDE/crashers/Constraint-Constraint-78f127.swift @@ -1,4 +1,4 @@ -// {"kind":"complete","signature":"swift::constraints::ConstraintSystem::addConstraintImpl(swift::constraints::ConstraintKind, swift::Type, swift::Type, swift::constraints::ConstraintLocatorBuilder, bool)","signatureAssert":"Assertion failed: (second && \"Missing second type\"), function addConstraintImpl"} +// {"kind":"complete","signature":"swift::constraints::Constraint::Constraint(swift::constraints::ConstraintKind, swift::Type, swift::Type, swift::constraints::ConstraintLocator*, llvm::SmallPtrSetImpl&)","signatureAssert":"Assertion failed: (Ptr && \"Cannot dereference a null Type!\"), function operator->"} // RUN: not --crash %target-swift-ide-test -code-completion -batch-code-completion -skip-filecheck -code-completion-diagnostics -source-filename %s @propertyWrapper struct a { wrappedValue: Bool init(wrappedValue: Bool diff --git a/validation-test/compiler_crashers/ConstraintSystem-diagnoseAmbiguityWithFixes-963e71.swift b/validation-test/compiler_crashers/ConstraintSystem-diagnoseAmbiguityWithFixes-963e71.swift deleted file mode 100644 index 33bdbc097e376..0000000000000 --- a/validation-test/compiler_crashers/ConstraintSystem-diagnoseAmbiguityWithFixes-963e71.swift +++ /dev/null @@ -1,4 +0,0 @@ -// {"kind":"typecheck","original":"e51afbca","signature":"swift::constraints::ConstraintSystem::diagnoseAmbiguityWithFixes(llvm::SmallVectorImpl&)","signatureAssert":"Assertion failed: (!empty()), function front"} -// RUN: not --crash %target-swift-frontend -typecheck %s -struct a throw withThrowingTaskGroup(of : a) { -b in diff --git a/validation-test/compiler_crashers/diagnoseContextualFunctionCallGenericAmbiguity-963e71.swift b/validation-test/compiler_crashers/diagnoseContextualFunctionCallGenericAmbiguity-963e71.swift new file mode 100644 index 0000000000000..8160e8178f5cd --- /dev/null +++ b/validation-test/compiler_crashers/diagnoseContextualFunctionCallGenericAmbiguity-963e71.swift @@ -0,0 +1,4 @@ +// {"kind":"typecheck","original":"e51afbca","signature":"diagnoseContextualFunctionCallGenericAmbiguity(swift::constraints::ConstraintSystem&, llvm::ArrayRef>, llvm::ArrayRef>)","signatureAssert":"Assertion failed: (!empty()), function front"} +// RUN: not --crash %target-swift-frontend -typecheck %s +struct a throw withThrowingTaskGroup(of : a) { +b in From 0c553cabee5f7ea1f902bf2c81b477be98f75c50 Mon Sep 17 00:00:00 2001 From: Hamish Knight Date: Mon, 10 Nov 2025 10:40:35 +0000 Subject: [PATCH 2/3] [test] Add some not-yet-crashing crashers These would crash with an assertion I'm planning on adding, make sure I fix them before adding the assert. --- .../TypeChecker-typeCheckBinding-0e62c5.swift | 12 ++++++++++++ .../TypeChecker-typeCheckBinding-1a334a.swift | 5 +++++ .../TypeChecker-typeCheckBinding-353fda.swift | 8 ++++++++ .../TypeChecker-typeCheckBinding-adf55f.swift | 7 +++++++ .../TypeChecker-typeCheckBinding-c1121c.swift | 4 ++++ 5 files changed, 36 insertions(+) create mode 100644 validation-test/compiler_crashers_fixed/TypeChecker-typeCheckBinding-0e62c5.swift create mode 100644 validation-test/compiler_crashers_fixed/TypeChecker-typeCheckBinding-1a334a.swift create mode 100644 validation-test/compiler_crashers_fixed/TypeChecker-typeCheckBinding-353fda.swift create mode 100644 validation-test/compiler_crashers_fixed/TypeChecker-typeCheckBinding-adf55f.swift create mode 100644 validation-test/compiler_crashers_fixed/TypeChecker-typeCheckBinding-c1121c.swift diff --git a/validation-test/compiler_crashers_fixed/TypeChecker-typeCheckBinding-0e62c5.swift b/validation-test/compiler_crashers_fixed/TypeChecker-typeCheckBinding-0e62c5.swift new file mode 100644 index 0000000000000..99d3aa68e3998 --- /dev/null +++ b/validation-test/compiler_crashers_fixed/TypeChecker-typeCheckBinding-0e62c5.swift @@ -0,0 +1,12 @@ +// {"kind":"typecheck","original":"e679747c","signature":"swift::TypeChecker::typeCheckBinding(swift::Pattern*&, swift::Expr*&, swift::DeclContext*, swift::Type, swift::PatternBindingDecl*, unsigned int, swift::optionset::OptionSet)"} +// RUN: not %target-swift-frontend -typecheck %s +enum a: Error { + case c( +} +struct d { + bar( Error? -> Void) + { + bar { + e in + return if let a.c(f) = e { + f diff --git a/validation-test/compiler_crashers_fixed/TypeChecker-typeCheckBinding-1a334a.swift b/validation-test/compiler_crashers_fixed/TypeChecker-typeCheckBinding-1a334a.swift new file mode 100644 index 0000000000000..86d375f614d86 --- /dev/null +++ b/validation-test/compiler_crashers_fixed/TypeChecker-typeCheckBinding-1a334a.swift @@ -0,0 +1,5 @@ +// {"kind":"typecheck","original":"deecafdd","signature":"swift::TypeChecker::typeCheckBinding(swift::Pattern*&, swift::Expr*&, swift::DeclContext*, swift::Type, swift::PatternBindingDecl*, unsigned int, swift::optionset::OptionSet)"} +// RUN: not %target-swift-frontend -typecheck %s +return { + lazy var a = <#expression#> +} diff --git a/validation-test/compiler_crashers_fixed/TypeChecker-typeCheckBinding-353fda.swift b/validation-test/compiler_crashers_fixed/TypeChecker-typeCheckBinding-353fda.swift new file mode 100644 index 0000000000000..5fb1a3790009d --- /dev/null +++ b/validation-test/compiler_crashers_fixed/TypeChecker-typeCheckBinding-353fda.swift @@ -0,0 +1,8 @@ +// {"kind":"typecheck","original":"1309b52b","signature":"swift::TypeChecker::typeCheckBinding(swift::Pattern*&, swift::Expr*&, swift::DeclContext*, swift::Type, swift::PatternBindingDecl*, unsigned int, swift::optionset::OptionSet)"} +// RUN: not %target-swift-frontend -typecheck %s +{ + let a = 0.0 + switch a { + case let !b where b: + } +} diff --git a/validation-test/compiler_crashers_fixed/TypeChecker-typeCheckBinding-adf55f.swift b/validation-test/compiler_crashers_fixed/TypeChecker-typeCheckBinding-adf55f.swift new file mode 100644 index 0000000000000..57aae1cf17b29 --- /dev/null +++ b/validation-test/compiler_crashers_fixed/TypeChecker-typeCheckBinding-adf55f.swift @@ -0,0 +1,7 @@ +// {"kind":"typecheck","original":"22c204bc","signature":"swift::TypeChecker::typeCheckBinding(swift::Pattern*&, swift::Expr*&, swift::DeclContext*, swift::Type, swift::PatternBindingDecl*, unsigned int, swift::optionset::OptionSet)"} +// RUN: not %target-swift-frontend -typecheck %s +struct a: ExpressibleByIntegerLiteral + func *** (a , a ) +} +{ + let b = 3 *** 4 diff --git a/validation-test/compiler_crashers_fixed/TypeChecker-typeCheckBinding-c1121c.swift b/validation-test/compiler_crashers_fixed/TypeChecker-typeCheckBinding-c1121c.swift new file mode 100644 index 0000000000000..fd58ca78f72d2 --- /dev/null +++ b/validation-test/compiler_crashers_fixed/TypeChecker-typeCheckBinding-c1121c.swift @@ -0,0 +1,4 @@ +// {"kind":"typecheck","original":"18f513af","signature":"swift::TypeChecker::typeCheckBinding(swift::Pattern*&, swift::Expr*&, swift::DeclContext*, swift::Type, swift::PatternBindingDecl*, unsigned int, swift::optionset::OptionSet)"} +// RUN: not %target-swift-frontend -typecheck %s +{ + guard let a = a " From 1b5e1db05d2b99c2f2cfee58e7011aec3fb492b2 Mon Sep 17 00:00:00 2001 From: Hamish Knight Date: Mon, 10 Nov 2025 10:40:35 +0000 Subject: [PATCH 3/3] [test] Add some more known crashers --- .../ConstraintSystem-addConstraintImpl-622497.swift | 8 ++++++++ .../ConstraintSystem-matchFunctionTypes-06eb4e.swift | 3 +++ .../ConnectedComponents-unionSets-7527be.swift | 6 ++++++ .../ConstraintSystem-getClosureType-aac79a.swift | 5 +++++ .../compiler_crashers/DeclChecker-visit-0fdea7.swift | 9 +++++++++ .../ExprRewriter-coerceToType-df86fa.swift | 5 +++++ .../ExprRewriter-visitDeclRefExpr-1e0608.swift | 9 +++++++++ .../PackType-getExpandedGenericArgs-f3b4de.swift | 5 +++++ .../Parser-parseCustomAttribute-f0c068.swift | 3 +++ .../Parser-parseExprEditorPlaceholder-62497c.swift | 3 +++ .../TypeChecker-typeCheckParameterDefault-3e7f34.swift | 6 ++++++ ...eChecker-typeCheckStmtConditionElement-266df8.swift | 9 +++++++++ ...nverter-setCaptureTypeExpansionContext-e72208.swift | 9 +++++++++ ...istributedActorSystemResultHandlerType-b44285.swift | 6 ++++++ .../compiler_crashers/getParameterAt-020583.swift | 6 ++++++ .../getPropertyWrapperTypeFromOverload-e66d96.swift | 10 ++++++++++ 16 files changed, 102 insertions(+) create mode 100644 validation-test/IDE/crashers/ConstraintSystem-addConstraintImpl-622497.swift create mode 100644 validation-test/IDE/crashers/ConstraintSystem-matchFunctionTypes-06eb4e.swift create mode 100644 validation-test/compiler_crashers/ConnectedComponents-unionSets-7527be.swift create mode 100644 validation-test/compiler_crashers/ConstraintSystem-getClosureType-aac79a.swift create mode 100644 validation-test/compiler_crashers/DeclChecker-visit-0fdea7.swift create mode 100644 validation-test/compiler_crashers/ExprRewriter-coerceToType-df86fa.swift create mode 100644 validation-test/compiler_crashers/ExprRewriter-visitDeclRefExpr-1e0608.swift create mode 100644 validation-test/compiler_crashers/PackType-getExpandedGenericArgs-f3b4de.swift create mode 100644 validation-test/compiler_crashers/Parser-parseCustomAttribute-f0c068.swift create mode 100644 validation-test/compiler_crashers/Parser-parseExprEditorPlaceholder-62497c.swift create mode 100644 validation-test/compiler_crashers/TypeChecker-typeCheckParameterDefault-3e7f34.swift create mode 100644 validation-test/compiler_crashers/TypeChecker-typeCheckStmtConditionElement-266df8.swift create mode 100644 validation-test/compiler_crashers/TypeConverter-setCaptureTypeExpansionContext-e72208.swift create mode 100644 validation-test/compiler_crashers/getDistributedActorSystemResultHandlerType-b44285.swift create mode 100644 validation-test/compiler_crashers/getParameterAt-020583.swift create mode 100644 validation-test/compiler_crashers/getPropertyWrapperTypeFromOverload-e66d96.swift diff --git a/validation-test/IDE/crashers/ConstraintSystem-addConstraintImpl-622497.swift b/validation-test/IDE/crashers/ConstraintSystem-addConstraintImpl-622497.swift new file mode 100644 index 0000000000000..3560382fd033d --- /dev/null +++ b/validation-test/IDE/crashers/ConstraintSystem-addConstraintImpl-622497.swift @@ -0,0 +1,8 @@ +// {"kind":"complete","original":"70b8b689","signature":"swift::constraints::ConstraintSystem::addConstraintImpl(swift::constraints::ConstraintKind, swift::Type, swift::Type, swift::constraints::ConstraintLocatorBuilder, bool)","signatureAssert":"Assertion failed: (second && \"Missing second type\"), function addConstraintImpl"} +// RUN: not --crash %target-swift-ide-test -code-completion -batch-code-completion -skip-filecheck -code-completion-diagnostics -source-filename %s +@propertyWrapper struct a { + wrappedValue : Bool init(wrappedValue: Bool) + var projectedValue init(projectedValue:) + b(@a ) + { + b(#^^# diff --git a/validation-test/IDE/crashers/ConstraintSystem-matchFunctionTypes-06eb4e.swift b/validation-test/IDE/crashers/ConstraintSystem-matchFunctionTypes-06eb4e.swift new file mode 100644 index 0000000000000..e29316e571629 --- /dev/null +++ b/validation-test/IDE/crashers/ConstraintSystem-matchFunctionTypes-06eb4e.swift @@ -0,0 +1,3 @@ +// {"kind":"complete","original":"febd2f61","signature":"swift::constraints::ConstraintSystem::matchFunctionTypes(swift::FunctionType*, swift::FunctionType*, swift::constraints::ConstraintKind, swift::optionset::OptionSet, swift::constraints::ConstraintLocatorBuilder)","signatureAssert":"Assertion failed: (Index < Length && \"Invalid index!\"), function operator[]"} +// RUN: not --crash %target-swift-ide-test -code-completion -batch-code-completion -skip-filecheck -code-completion-diagnostics -source-filename %s +Optional#^^# = { diff --git a/validation-test/compiler_crashers/ConnectedComponents-unionSets-7527be.swift b/validation-test/compiler_crashers/ConnectedComponents-unionSets-7527be.swift new file mode 100644 index 0000000000000..c47984a0fcbf3 --- /dev/null +++ b/validation-test/compiler_crashers/ConnectedComponents-unionSets-7527be.swift @@ -0,0 +1,6 @@ +// {"kind":"typecheck","signature":"(anonymous namespace)::ConnectedComponents::unionSets(swift::TypeVariableType*, swift::TypeVariableType*)","signatureAssert":"Assertion failed: (validComponentCount > 0), function unionSets"} +// RUN: not --crash %target-swift-frontend -typecheck %s +let b = (c(), d() +a { + e + b diff --git a/validation-test/compiler_crashers/ConstraintSystem-getClosureType-aac79a.swift b/validation-test/compiler_crashers/ConstraintSystem-getClosureType-aac79a.swift new file mode 100644 index 0000000000000..313b604bae0cc --- /dev/null +++ b/validation-test/compiler_crashers/ConstraintSystem-getClosureType-aac79a.swift @@ -0,0 +1,5 @@ +// {"kind":"typecheck","signature":"swift::constraints::ConstraintSystem::getClosureType(swift::ClosureExpr const*) const","signatureAssert":"Assertion failed: (result), function getClosureType"} +// RUN: not --crash %target-swift-frontend -typecheck %s +return { + lazy var a = if .random() { return } +} diff --git a/validation-test/compiler_crashers/DeclChecker-visit-0fdea7.swift b/validation-test/compiler_crashers/DeclChecker-visit-0fdea7.swift new file mode 100644 index 0000000000000..2b5ea2e233dcb --- /dev/null +++ b/validation-test/compiler_crashers/DeclChecker-visit-0fdea7.swift @@ -0,0 +1,9 @@ +// {"kind":"typecheck","original":"6bf5a596","signature":"(anonymous namespace)::DeclChecker::visit(swift::Decl*)","signatureAssert":"Assertion failed: (Val && \"isa<> used on a null pointer\"), function doit"} +// RUN: not --crash %target-swift-frontend -typecheck %s +@implementation +extension + CInt +{ + deinit { + } +} diff --git a/validation-test/compiler_crashers/ExprRewriter-coerceToType-df86fa.swift b/validation-test/compiler_crashers/ExprRewriter-coerceToType-df86fa.swift new file mode 100644 index 0000000000000..01095e1ffe567 --- /dev/null +++ b/validation-test/compiler_crashers/ExprRewriter-coerceToType-df86fa.swift @@ -0,0 +1,5 @@ +// {"kind":"typecheck","signature":"(anonymous namespace)::ExprRewriter::coerceToType(swift::Expr*, swift::Type, swift::constraints::ConstraintLocatorBuilder)"} +// RUN: not --crash %target-swift-frontend -typecheck %s +struct a { + callAsFunction( () -> Void) + _ = a. init { diff --git a/validation-test/compiler_crashers/ExprRewriter-visitDeclRefExpr-1e0608.swift b/validation-test/compiler_crashers/ExprRewriter-visitDeclRefExpr-1e0608.swift new file mode 100644 index 0000000000000..ace29763afa17 --- /dev/null +++ b/validation-test/compiler_crashers/ExprRewriter-visitDeclRefExpr-1e0608.swift @@ -0,0 +1,9 @@ +// {"kind":"typecheck","signature":"(anonymous namespace)::ExprRewriter::visitDeclRefExpr(swift::DeclRefExpr*)"} +// RUN: not --crash %target-swift-frontend -typecheck %s +{ + for b 0..<0 { + let a = Array(0.., llvm::ArrayRef)","signatureAssert":"Assertion failed: (isa(Val) && \"cast() argument of incompatible type!\"), function cast"} +// RUN: not --crash %target-swift-frontend -typecheck %s +struct a = a<> + c<( diff --git a/validation-test/compiler_crashers/Parser-parseCustomAttribute-f0c068.swift b/validation-test/compiler_crashers/Parser-parseCustomAttribute-f0c068.swift new file mode 100644 index 0000000000000..1b3884af1db6a --- /dev/null +++ b/validation-test/compiler_crashers/Parser-parseCustomAttribute-f0c068.swift @@ -0,0 +1,3 @@ +// {"kind":"typecheck","original":"134d8fc1","signature":"swift::Parser::parseCustomAttribute(swift::SourceLoc)","signatureAssert":"Assertion failed: (Tok.is(tok::identifier)), function parseCustomAttribute"} +// RUN: not --crash %target-swift-frontend -typecheck %s +@ @ :: diff --git a/validation-test/compiler_crashers/Parser-parseExprEditorPlaceholder-62497c.swift b/validation-test/compiler_crashers/Parser-parseExprEditorPlaceholder-62497c.swift new file mode 100644 index 0000000000000..13988cc20ee9a --- /dev/null +++ b/validation-test/compiler_crashers/Parser-parseExprEditorPlaceholder-62497c.swift @@ -0,0 +1,3 @@ +// {"kind":"typecheck","original":"21bee1da","signature":"swift::Parser::parseExprEditorPlaceholder(swift::Token, swift::Identifier)","signatureAssert":"Assertion failed: (PlaceholderId.isEditorPlaceholder()), function parseExprEditorPlaceholder"} +// RUN: not --crash %target-swift-frontend -typecheck %s +<##>:: diff --git a/validation-test/compiler_crashers/TypeChecker-typeCheckParameterDefault-3e7f34.swift b/validation-test/compiler_crashers/TypeChecker-typeCheckParameterDefault-3e7f34.swift new file mode 100644 index 0000000000000..9b31066657882 --- /dev/null +++ b/validation-test/compiler_crashers/TypeChecker-typeCheckParameterDefault-3e7f34.swift @@ -0,0 +1,6 @@ +// {"kind":"typecheck","original":"fec80ed5","signature":"swift::TypeChecker::typeCheckParameterDefault(swift::Expr*&, swift::DeclContext*, swift::Type, bool, bool)","signatureAssert":"Assertion failed: (paramType && (!paramType->hasError() || DC->getASTContext().CompletionCallback)), function typeCheckParameterDefault"} +// RUN: not --crash %target-swift-frontend -typecheck %s +func a { + return switch 0 { + case /fallthrough + fatalError( diff --git a/validation-test/compiler_crashers/TypeChecker-typeCheckStmtConditionElement-266df8.swift b/validation-test/compiler_crashers/TypeChecker-typeCheckStmtConditionElement-266df8.swift new file mode 100644 index 0000000000000..e76481422b62e --- /dev/null +++ b/validation-test/compiler_crashers/TypeChecker-typeCheckStmtConditionElement-266df8.swift @@ -0,0 +1,9 @@ +// {"kind":"typecheck","signature":"swift::TypeChecker::typeCheckStmtConditionElement(swift::StmtConditionElement&, bool&, swift::DeclContext*)","signatureAssert":"Assertion failed: (!elt.getPattern()->hasType() && \"the pattern binding condition is already type checked\"), function typeCheckPatternBindingStmtConditionElement"} +// RUN: not --crash %target-swift-frontend -typecheck %s +struct a { + func b() {} +} +_ = { c } +var d: a? +guard let d else {} +let c = d.b() diff --git a/validation-test/compiler_crashers/TypeConverter-setCaptureTypeExpansionContext-e72208.swift b/validation-test/compiler_crashers/TypeConverter-setCaptureTypeExpansionContext-e72208.swift new file mode 100644 index 0000000000000..0180957614ec0 --- /dev/null +++ b/validation-test/compiler_crashers/TypeConverter-setCaptureTypeExpansionContext-e72208.swift @@ -0,0 +1,9 @@ +// {"issueID":85266,"kind":"emit-silgen","signature":"swift::Lowering::TypeConverter::setCaptureTypeExpansionContext(swift::SILDeclRef, swift::SILModule&)","signatureAssert":"Assertion failed: (existing->second == context && \"closure shouldn't be emitted with different capture type expansion contexts\"), function setCaptureTypeExpansionContext"} +// RUN: not --crash %target-swift-frontend -emit-silgen %s +// https://github.com/swiftlang/swift/issues/85266 +func a() { + func b() -> Any { + c + } + lazy var c = b +} diff --git a/validation-test/compiler_crashers/getDistributedActorSystemResultHandlerType-b44285.swift b/validation-test/compiler_crashers/getDistributedActorSystemResultHandlerType-b44285.swift new file mode 100644 index 0000000000000..d563db649f60b --- /dev/null +++ b/validation-test/compiler_crashers/getDistributedActorSystemResultHandlerType-b44285.swift @@ -0,0 +1,6 @@ +// {"kind":"emit-silgen","signature":"swift::getDistributedActorSystemResultHandlerType(swift::NominalTypeDecl*)","signatureAssert":"Assertion failed: (!system->isDistributedActor()), function getDistributedActorSystemResultHandlerType"} +// RUN: not --crash %target-swift-frontend -emit-silgen %s +// REQUIRES: OS=macosx +import Distributed +distributed actor a: DistributedActorSystem { +} diff --git a/validation-test/compiler_crashers/getParameterAt-020583.swift b/validation-test/compiler_crashers/getParameterAt-020583.swift new file mode 100644 index 0000000000000..d9449af0eaa32 --- /dev/null +++ b/validation-test/compiler_crashers/getParameterAt-020583.swift @@ -0,0 +1,6 @@ +// {"kind":"typecheck","original":"b56d8c69","signature":"swift::getParameterAt(swift::ConcreteDeclRef, unsigned int)"} +// RUN: not --crash %target-swift-frontend -typecheck %s +{ + func a() + @<#type#> #b(a(c)) +} diff --git a/validation-test/compiler_crashers/getPropertyWrapperTypeFromOverload-e66d96.swift b/validation-test/compiler_crashers/getPropertyWrapperTypeFromOverload-e66d96.swift new file mode 100644 index 0000000000000..43f3d70a0a836 --- /dev/null +++ b/validation-test/compiler_crashers/getPropertyWrapperTypeFromOverload-e66d96.swift @@ -0,0 +1,10 @@ +// {"kind":"typecheck","original":"c9d8f598","signature":"getPropertyWrapperTypeFromOverload(swift::constraints::ConstraintSystem&, swift::constraints::SelectedOverload, llvm::function_ref)","signatureAssert":"Assertion failed: (!cs.hasType(D) && \"Should have recorded type for wrapper var\"), function getPropertyWrapperTypeFromOverload"} +// RUN: not --crash %target-swift-frontend -typecheck %s +@propertyWrapper struct a { + wrappedValue : Bool init(wrappedValue: Bool) + var projectedValue + init(projectedValue: Bool) + func b(@a c: Bool) { + b - c + } +}