Files
swift-mirror/test/IDE/complete_some_any.swift
Alex Hoppen 9cb2a248c6 [CodeCompletion] Add keyword completion for 'some', 'any', 'repeat', and 'each'
The implementation is not 100% perfect but I don’t think it’s worth putting too much effort into it passing more information down in the parser if 'repeat' and 'each' are valid if we are going to remove the current parser anyway.

rdar://95725895
2023-12-04 15:20:05 -08:00

26 lines
972 B
Swift

// RUN: %batch-code-completion
func test1(x: #^PARAM?check=HAS_SOME_ANY;check=HAS_REPEAT^#) {}
func test2() -> #^RESULT?check=HAS_SOME_ANY;check=NO_REPEAT^# {}
func test3() {
// FIXME: 'repeat' is not valid here semantically but we allow it syntactically and can't (easily) tell in the parser whether 'repeat' is valid. Not worth fixing in the old parser.
let a: [#^ARRAY_TYPE?check=HAS_SOME_ANY;check=HAS_REPEAT^#]
let b: any #^AFTER_ANY?check=NO_SOME_ANY;check=NO_REPEAT^#
}
func test4(x: repeat #^AFTER_REPEAT?check=HAS_SOME_ANY;check=NO_REPEAT^#) {}
// HAS_SOME_ANY-DAG: Keyword/None: some; name=some
// HAS_SOME_ANY-DAG: Keyword/None: any; name=any
// HAS_SOME_ANY-DAG: Keyword/None: each; name=each
// NO_SOME_ANY-NOT: Keyword/None: some; name=some
// NO_SOME_ANY-NOT: Keyword/None: any; name=any
// NO_SOME_ANY-NOT: Keyword/None: each; name=each
// HAS_REPEAT-DAG: Keyword/None: repeat; name=repeat
// NO_REPEAT-NOT: Keyword/None: repeat; name=repeat