Files
swift-mirror/test/SourceKit/Misc/mixed_completion_sequence.swift
Nathan Hawes 388052b6ab [SymbolGraph][CursorInfo] Add option to SourceKit's CursorInfo request to include the SymbolGraph JSON
Adds a new 'key.retrieve_symbol_graph' option to the request. When set to 1 it
includes the JSON for a SymbolGraph containing a single node for the symbol at
the requested position.

This also extends the SymbolGraph library with a new entry point to get a graph
for a single symbol, and to additionally support type substitution to match the
existing CursorInfo behavior (e.g. so that when invoked on `first` in
`Array<Int>().first`, the type is given as `Int?` rather than `Element?`).

Resolves rdar://problem/70551509
2020-12-12 14:38:41 +10:00

42 lines
1.1 KiB
Swift

protocol Target1 {}
protocol Target2 {}
protocol Target3 {}
struct ConcreteTarget1 : Target1 {}
struct ConcreteTarget2 : Target2 {}
struct ConcreteTarget3 : Target3 {}
protocol P {
associatedtype Assoc
func protocolMethod(asc: Assoc) -> Self
}
extension P {
func protocolMethod(asc: Assoc) -> Self { return self }
}
enum MyEnum {
case foo, bar
}
class C : P {
typealias Assoc = String
static func staticMethod() -> Self {}
func instanceMethod(x: MyEnum) -> C {}
func methodForTarget1() -> ConcreteTarget1 {}
func methodForTarget2() -> ConcreteTarget2 {}
}
func testing(obj: C) {
let _ = obj.
}
func testing(obj: C) {
let _ = obj.instanceMethod(x: )
}
// RUN: %sourcekitd-test \
// RUN: -req=complete -pos=29:14 %s -- %s -module-name MyModule == \
// RUN: -req=conformingmethods -pos=29:14 -req-opts=expectedtypes='[$s8MyModule7Target2PD;$s8MyModule7Target1PD]' %s -- %s -module-name MyModule == \
// RUN: -req=typecontextinfo -pos=32:33 %s -- %s -module-name MyModule == \
// RUN: -req=complete -pos=29:14 %s -- %s -module-name MyModule > %t.response
// RUN: %diff -u %s.response %t.response