import Foo // REQUIRES: objc_interop // RUN: rm -rf %t.ccp // RUN: %sourcekitd-test -req=complete.cache.ondisk -cache-path=%t.ccp == \ // RUN: -req=complete.open -pos=2:1 -req-opts=hidelowpriority=0 %s -- %s -F %S/../Inputs/libIDE-mock-sdk > %t.completions1 // Make sure we built the cache. // RUN: ls %t.ccp | grep "Foo.*completions" // RUN: %sourcekitd-test -req=complete.cache.ondisk -cache-path=%t.ccp == \ // RUN: -req=complete -pos=2:1 %s -- %s -F %S/../Inputs/libIDE-mock-sdk > %t.completions2 // Sanity check the results // RUN: %FileCheck %s < %t.completions1 // RUN: %FileCheck %s < %t.completions2 // CHECK: key.name: "FooStruct // RUN: %complete-test -raw -tok=VOID_1 %s -- -F %S/../Inputs/libIDE-mock-sdk | %FileCheck %s -check-prefix=VOID_1 // RUN: %complete-test -raw -tok=VOID_2 %s -- -F %S/../Inputs/libIDE-mock-sdk | %FileCheck %s -check-prefix=VOID_1 // RUN: %complete-test -raw -tok=VOID_3 %s -- -F %S/../Inputs/libIDE-mock-sdk | %FileCheck %s -check-prefix=VOID_3 func test1() { _ = #^VOID_1,fooFunc^# } func test2() { for i in 1...#^VOID_2,fooFunc^# {} } // VOID_1: key.name: "fooFuncNoreturn1()", // VOID_1-NEXT: key.sourcetext: // VOID_1-NEXT: key.description: // VOID_1-NEXT: key.typename: "Never", // VOID_1-NEXT: key.context: source.codecompletion.context.othermodule, // VOID_1-NEXT: key.moduleimportdepth: 1, // VOID_1-NEXT: key.num_bytes_to_erase: 0, // VOID_1-NEXT: key.substructure: // VOID_1: key.name: "fooHelperSubFunc1(:)", // VOID_1-NEXT: key.sourcetext: // VOID_1-NEXT: key.description: // VOID_1-NEXT: key.typename: "Int32", // VOID_1-NEXT: key.context: source.codecompletion.context.othermodule, // VOID_1-NEXT: key.moduleimportdepth: 2, // VOID_1-NEXT: key.num_bytes_to_erase: 0, // VOID_1-NEXT: key.substructure: func test3() { #^VOID_3,fooFunc^# {} } // VOID_3-NOT: key.not_recommended