Skip to content

Commit f0a5a5e

Browse files
committed
Sema: Fix TypeRefinementNode kind for unavailable/deprecated decls.
1 parent eedb634 commit f0a5a5e

File tree

2 files changed

+8
-7
lines changed

2 files changed

+8
-7
lines changed

lib/Sema/TypeCheckAvailability.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -695,7 +695,7 @@ class TypeRefinementContextBuilder : private ASTWalker {
695695
return nullptr;
696696

697697
// Declarations with explicit availability attributes always get a TRC.
698-
if (AvailabilityInference::attrForAnnotatedAvailableRange(D)) {
698+
if (hasActiveAvailableAttribute(D, Context)) {
699699
return TypeRefinementContext::createForDecl(
700700
Context, D, getCurrentTRC(),
701701
getEffectiveAvailabilityForDeclSignature(D),

test/Sema/availability_refinement_contexts.swift

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,7 @@ func testStringInterpolation() {
311311
"""
312312
}
313313

314-
// CHECK-NEXT: {{^}} (decl_implicit version=50 unavailable=macOS decl=unavailableOnMacOS()
314+
// CHECK-NEXT: {{^}} (decl version=50 unavailable=macOS decl=unavailableOnMacOS()
315315
// CHECK-NEXT: {{^}} (decl_implicit version=50 unavailable=macOS decl=x
316316

317317
@available(macOS, unavailable)
@@ -322,18 +322,18 @@ func unavailableOnMacOS() {
322322
// CHECK-NEXT: {{^}} (decl_implicit version=50 decl=extension.SomeEnum
323323
// CHECK-NEXT: {{^}} (decl version=51 decl=extension.SomeEnum
324324
// CHECK-NEXT: {{^}} (decl_implicit version=51 decl=unavailableOnMacOS
325-
// CHECK-NEXT: {{^}} (decl_implicit version=51 unavailable=macOS decl=unavailableOnMacOS
325+
// CHECK-NEXT: {{^}} (decl version=51 unavailable=macOS decl=unavailableOnMacOS
326326
@available(OSX 51, *)
327327
extension SomeEnum {
328328
@available(macOS, unavailable)
329329
var unavailableOnMacOS: Int { 1 }
330330
}
331331

332332
// CHECK-NEXT: {{^}} (decl_implicit version=50 decl=extension.SomeEnum
333-
// CHECK-NEXT: {{^}} (decl_implicit version=50 unavailable=macOS decl=extension.SomeEnum
333+
// CHECK-NEXT: {{^}} (decl version=50 unavailable=macOS decl=extension.SomeEnum
334334
// CHECK-NEXT: {{^}} (decl_implicit version=50 unavailable=macOS decl=availableMacOS_52
335335
// CHECK-NEXT: {{^}} (decl version=52 unavailable=macOS decl=availableMacOS_52
336-
// CHECK-NEXT: {{^}} (decl_implicit version=50 unavailable=* decl=neverAvailable()
336+
// CHECK-NEXT: {{^}} (decl version=50 unavailable=* decl=neverAvailable()
337337

338338
@available(macOS, unavailable)
339339
extension SomeEnum {
@@ -347,15 +347,16 @@ extension SomeEnum {
347347
func neverAvailable() {}
348348
}
349349

350-
// CHECK-NEXT: {{^}} (decl_implicit version=50 unavailable=* decl=NeverAvailable
350+
// CHECK-NEXT: {{^}} (decl version=50 unavailable=* decl=NeverAvailable
351+
// CHECK-NEXT: {{^}} (decl version=50 unavailable=* decl=unavailableOnMacOS()
351352

352353
@available(*, unavailable)
353354
struct NeverAvailable {
354355
@available(macOS, unavailable)
355356
func unavailableOnMacOS() {}
356357
}
357358

358-
// CHECK-NEXT: {{^}} (decl_implicit version=50 deprecated decl=deprecatedOnMacOS()
359+
// CHECK-NEXT: {{^}} (decl version=50 deprecated decl=deprecatedOnMacOS()
359360
// CHECK-NEXT: {{^}} (decl_implicit version=50 deprecated decl=x
360361

361362
@available(macOS, deprecated)

0 commit comments

Comments
 (0)