struct MyStruct { init() {} var value: Int = 1 } func foo(arg: MyStruct) { #if true _ = arg./*8:11*/ #else _ = arg./*10:11*/ #endif } struct TestStruct { #if true func testActive(arg: MyStruct) { _ = arg./*17:13*/ } #else func testInactive(arg: MyStruct) { _ = arg./*21:13*/ } #endif } // Test that (1) fast completion happens even in inactive #if blocks, and // (2) #if in toplevel decls invalidate cached ASTContext // RUN: %sourcekitd-test \ // RUN: -req=complete -pos=8:11 %s -- %s -parse-as-library == \ // RUN: -req=complete -pos=10:11 %s -- %s -parse-as-library == \ // RUN: -req=complete -pos=17:13 %s -- %s -parse-as-library == \ // RUN: -req=complete -pos=21:13 %s -- %s -parse-as-library \ // RUN: | %FileCheck %s --check-prefix=RESULT // RESULT-LABEL: key.results: [ // RESULT-DAG: key.description: "value" // RESULT: ] // RESULT-NOT: key.reusingastcontext: 1 // RESULT-LABEL: key.results: [ // RESULT-DAG: key.description: "value" // RESULT: ] // RESULT: key.reusingastcontext: 1 // RESULT-LABEL: key.results: [ // RESULT-DAG: key.description: "value" // RESULT: ] // RESULT: key.reusingastcontext: 1 // RESULT-LABEL: key.results: [ // RESULT-DAG: key.description: "value" // RESULT: ] // RESULT-NOT: key.reusingastcontext: 1