Files
swift-mirror/test/stdlib/Observation/ObservableAvailabilityCycle2.swift
Slava Pestov d579a76581 Sema: Break request cycle when building TypeRefinementContexts
This fixes a recent regression introduced in the changes to make
TRC construction lazier in b33a71d64f.

Calling VarDecl::hasInitialValue() can ask for attached property
wrappers, which can trigger macro expansion. However, macro
expansion can result in TRC construction, causing a cycle.

Instead, just always build a lazy TRC for the initializer. It
might not be needed, but it's safest to not ask anything of the
VarDecl at all.

Fixes rdar://118452948.
2023-12-01 22:49:20 -05:00

15 lines
601 B
Swift

// REQUIRES: swift_swift_parser
// RUN: %target-swift-frontend -typecheck -parse-as-library -external-plugin-path %swift-plugin-dir#%swift-plugin-server -primary-file %s %S/Inputs/ObservableClass2.swift
// RUN: %target-swift-frontend -typecheck -parse-as-library -external-plugin-path %swift-plugin-dir#%swift-plugin-server %s -primary-file %S/Inputs/ObservableClass2.swift
// REQUIRES: observation
// REQUIRES: concurrency
// REQUIRES: objc_interop
// UNSUPPORTED: use_os_stdlib
// UNSUPPORTED: back_deployment_runtime
@available(SwiftStdlib 5.9, *)
let x = AnotherObservableClass(name: "Hello")