Files
swift-mirror/test/SourceKit/CursorInfo/cursor_swift_overlay.swift
Ben Barham 15ada41a5a [SourceKit] Make sure to use overlays when reading files
Two paths missed setting up overlays:
  - `CompletionInstance` when checking files from dependencies
  - `SwiftASTManager` when reading in files that it would later replace
    all inputs with

(1) would cause the AST context not to be re-used, even though nothing
had changed. (2) caused all non-completion functionality to fail for any
symbols within files only specified by the overlay.

Resolves rdar://85508213.
2022-03-24 15:30:02 -07:00

32 lines
1.0 KiB
Swift

// RUN: %empty-directory(%t)
// RUN: split-file --leading-lines %s %t
// RUN: sed -e "s@NAME_DIR@%{/t:regex_replacement}/A@g" -e "s@EXTERNAL_DIR@%{/t:regex_replacement}/B@g" %t/base.yaml > %t/overlay.yaml
//--- A/a.swift
func a() {
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):3 %t/A/a.swift -- -vfsoverlay %t/overlay.yaml %t/A/a.swift %t/A/b.swift | %FileCheck %s
b()
}
//--- B/b.swift
// TODO: This should be B/b.swift, but there's currently a bug with multiple overlays.
// See rdar://90578880 or https://github.com/llvm/llvm-project/issues/53306.
// Replace with CHECK-FIXED when that's fixed.
// CHECK: source.lang.swift.ref.function.free ({{.*}}{{/|\\}}A{{/|\\}}b.swift:*missing file*)
// CHECK-FIXED: source.lang.swift.ref.function.free ({{.*}}{{/|\\}}B{{/|\\}}b.swift:[[@LINE+1]]:6-[[@LINE+1]]:9)
func b() {}
//--- base.yaml
{
version: 0,
redirecting-with: "fallback",
use-external-names: true,
roots: [
{
type: "directory-remap",
name: "NAME_DIR",
external-contents: "EXTERNAL_DIR"
}
]
}