Files
swift-mirror/test/SourceKit/Sema/nil_annotation_in_case.swift
Alex Hoppen 1e9eac6c64 [SourceKit] Don’t provide incorrect semantic highlighting of nil in case statements as enum decl element
If a 'nil' literal occurs in a swift-case statment, it gets replaced by a reference to 'Optional.none' in the AST. We want to continue highlighting 'nil' as a keyword and not as an enum element.

Resolves apple/sourcekit-lsp#599
rdar://97961865
2022-08-03 22:42:40 +02:00

32 lines
796 B
Swift

func foo(o: Int?) {
switch o {
case nil:
break
case .none:
break
}
}
// RUN: %sourcekitd-test -req=open %s -- %s == -req=print-annotations %s -- %s | %FileCheck %s
// CHECK: [
// CHECK-NEXT: {
// CHECK-NEXT: key.kind: source.lang.swift.ref.struct,
// CHECK-NEXT: key.offset: 12,
// CHECK-NEXT: key.length: 3,
// CHECK-NEXT: key.is_system: 1
// CHECK-NEXT: },
// CHECK-NEXT: {
// CHECK-NEXT: key.kind: source.lang.swift.ref.var.local,
// CHECK-NEXT: key.offset: 29,
// CHECK-NEXT: key.length: 1
// CHECK-NEXT: },
// CHECK-NEXT: {
// CHECK-NEXT: key.kind: source.lang.swift.ref.enumelement,
// CHECK-NEXT: key.offset: 63,
// CHECK-NEXT: key.length: 4,
// CHECK-NEXT: key.is_system: 1
// CHECK-NEXT: }
// CHECK-NEXT: ]