// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=POUND_NOMINAL_TOP | %FileCheck %s -check-prefix=POUND_DIRECTIVE // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=POUND_NOMINAL_IN_IF | %FileCheck %s -check-prefix=POUND_DIRECTIVE // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=POUND_NOMINAL_IN_ELSEIF | %FileCheck %s -check-prefix=POUND_DIRECTIVE // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=POUND_NOMINAL_IN_ELSE | %FileCheck %s -check-prefix=POUND_DIRECTIVE // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=POUND_GLOBAL_TOP | %FileCheck %s -check-prefix=POUND_DIRECTIVE // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=POUND_GLOBAL_IN_IF | %FileCheck %s -check-prefix=POUND_DIRECTIVE // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=POUND_GLOBAL_IN_ELSEIF | %FileCheck %s -check-prefix=POUND_DIRECTIVE // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=POUND_GLOBAL_IN_ELSE | %FileCheck %s -check-prefix=POUND_DIRECTIVE // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=CONDITION_NOMINAL_1 | %FileCheck %s -check-prefix=CONDITION -check-prefix=NOFLAG // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=CONDITION_NOMINAL_1 -D FOO -D BAR | %FileCheck %s -check-prefix=CONDITION -check-prefix=WITHFLAG // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=CONDITION_NOMINAL_2 | %FileCheck %s -check-prefix=CONDITION -check-prefix=NOFLAGlll // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=CONDITION_GLOBAL_1 | %FileCheck %s -check-prefix=CONDITION -check-prefix=NOFLAG // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=CONDITION_GLOBAL_2 | %FileCheck %s -check-prefix=CONDITION -check-prefix=NOFLAG // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=CONDITION_GLOBAL_2 -D FOO -D BAR | %FileCheck %s -check-prefix=CONDITION -check-prefix=WITHFLAG // POUND_DIRECTIVE: Begin completions, 7 items // POUND_DIRECTIVE-DAG: Keyword[#sourceLocation]/None: sourceLocation(file: {#String#}, line: {#Int#}); name=sourceLocation(file: String, line: Int) // POUND_DIRECTIVE-DAG: Keyword[#warning]/None: warning("{#(message)#}"); name=warning("message") // POUND_DIRECTIVE-DAG: Keyword[#error]/None: error("{#(message)#}"); name=error("message") // POUND_DIRECTIVE-DAG: Keyword[#if]/None: if {#(condition)#}; name=if condition // POUND_DIRECTIVE-DAG: Keyword[#elseif]/None: elseif {#(condition)#}; name=elseif condition // POUND_DIRECTIVE-DAG: Keyword[#else]/None: else; name=else // POUND_DIRECTIVE-DAG: Keyword[#endif]/None: endif; name=endif class C { ##^POUND_NOMINAL_TOP^# #if true ##^POUND_NOMINAL_IN_IF^# #elseif true ##^POUND_NOMINAL_IN_ELSEIF^# #else ##^POUND_NOMINAL_IN_ELSE^# #endif } ##^POUND_GLOBAL_TOP^# #if false ##^POUND_GLOBAL_IN_IF^# #elseif false ##^POUND_GLOBAL_IN_ELSEIF^# #else ##^POUND_GLOBAL_IN_ELSE^# #endif // CONDITION: Begin completions // CONDITION-NOT: globalVar // CONDITION-DAG: Pattern/ExprSpecific: os({#(name)#}); name=os(name) // CONDITION-DAG: Pattern/ExprSpecific: arch({#(name)#}); name=arch(name) // CONDITION-DAG: Pattern/ExprSpecific: canImport({#(module)#}); name=canImport(module) // CONDITION-DAG: Pattern/ExprSpecific: targetEnvironment(simulator); name=targetEnvironment(simulator) // CONDITION-DAG: Pattern/ExprSpecific: swift(>={#(version)#}); name=swift(>=version) // CONDITION-DAG: Pattern/ExprSpecific: swift(<{#(version)#}); name=swift(={#(version)#}); name=compiler(>=version) // CONDITION-DAG: Pattern/ExprSpecific: compiler(<{#(version)#}); name=compiler(=1000) && #^CONDITION_GLOBAL_1^# #endif #if false #elseif #^CONDITION_GLOBAL_2^# // This '#if' is intentionally not closed with '#endif'