Skip to content

Commit e32a20a

Browse files
author
Simon Barinka
committed
[SourceKit] Report init info instead of the type decl info
Addresses PR review comments.
1 parent fcd084f commit e32a20a

File tree

7 files changed

+126
-135
lines changed

7 files changed

+126
-135
lines changed

lib/IDE/IDERequests.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -348,8 +348,8 @@ bool CursorInfoResolver::walkToExprPost(Expr *E) {
348348
return false;
349349

350350
if (OutermostCursorExpr && isCursorOn(E, LocToResolve)) {
351-
CursorInfo = new ResolvedExprStartCursorInfo(
352-
CursorInfo->getSourceFile(), CursorInfo->getLoc(), E);
351+
CursorInfo = new ResolvedExprStartCursorInfo(CursorInfo->getSourceFile(),
352+
CursorInfo->getLoc(), E);
353353
return false;
354354
}
355355

test/SourceKit/CursorInfo/cursor_info.swift

Lines changed: 35 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -230,11 +230,16 @@ enum E7: String {
230230

231231
func checkAnyIsAKeyword(x: Any) {}
232232

233-
var nilLiteral1: Int? = nil
234-
var nilLiteral2: Int! = nil
235-
236233
var binExpr = 1 + 2 + 3
237234

235+
struct A: ExpressibleByIntegerLiteral {
236+
init(integerLiteral value: Int) {
237+
self.value = value
238+
}
239+
let value: Int
240+
}
241+
var a: A = 42
242+
238243
// REQUIRES: objc_interop
239244
// RUN: %empty-directory(%t.tmp)
240245
// RUN: %swiftc_driver -emit-module -o %t.tmp/FooSwiftModule.swiftmodule %S/Inputs/FooSwiftModule.swift
@@ -808,52 +813,48 @@ var binExpr = 1 + 2 + 3
808813
// CHECK93: <Declaration>case b = &quot;f&quot;</Declaration>
809814
// CHECK93-NEXT: <decl.enumelement><syntaxtype.keyword>case</syntaxtype.keyword> <decl.name>b</decl.name> = <syntaxtype.string>&quot;f&quot;</syntaxtype.string></decl.enumelement>
810815

811-
// RUN: %sourcekitd-test -req=cursor -pos=23:23 %s -- -F %S/../Inputs/libIDE-mock-sdk -I %t.tmp %s | %FileCheck -check-prefix=CHECK94 %s
812-
// CHECK94: source.lang.swift.expr.literal ()
813-
// CHECK94-EMPTY:
814-
// CHECK94-NEXT: s:SS
816+
// RUN: %sourcekitd-test -req=cursor -pos=227:14 %s -- -F %S/../Inputs/libIDE-mock-sdk -I %t.tmp %s | %FileCheck -check-prefix=CHECK94 %s
817+
// CHECK94: source.lang.swift.ref.function.constructor
818+
// CHECK94-NEXT: init(_builtinStringLiteral:utf8CodeUnitCount:isASCII:)
819+
// CHECK94-NEXT: s:SS21_builtinStringLiteral17utf8CodeUnitCount7isASCIISSBp_BwBi1_tcfc
815820
// CHECK94-NEXT: source.lang.swift
816-
// CHECK94-NEXT: String
817-
// CHECK94-NEXT: $sSSD
821+
// CHECK94-NEXT: (String.Type) -> (Builtin.RawPointer, Builtin.Word, Builtin.Int1) -> String
822+
// CHECK94-NEXT: $s21_builtinStringLiteral17utf8CodeUnitCount7isASCIISSBp_BwBi1_tcD
818823
// CHECK94-NEXT: Swift
819824
// CHECK94-NEXT: <Group>String</Group>
820825
// CHECK94-NEXT: SYSTEM
821-
// CHECK94-NEXT: <Declaration>@frozen @_eagerMove struct String</Declaration>
822-
// CHECK94-NEXT: <decl.struct><syntaxtype.attribute.builtin><syntaxtype.attribute.name>@frozen</syntaxtype.attribute.name></syntaxtype.attribute.builtin> <syntaxtype.attribute.builtin><syntaxtype.attribute.name>@_eagerMove</syntaxtype.attribute.name></syntaxtype.attribute.builtin> <syntaxtype.keyword>struct</syntaxtype.keyword> <decl.name>String</decl.name></decl.struct>
823826

824827
// RUN: %sourcekitd-test -req=cursor -pos=231:6 %s -- -F %S/../Inputs/libIDE-mock-sdk -I %t.tmp %s | %FileCheck -check-prefix=CHECK95 %s
825828
// CHECK95: <Declaration>func checkAnyIsAKeyword(x: Any)</Declaration>
826829
// CHECK95-NEXT: <decl.function.free><syntaxtype.keyword>func</syntaxtype.keyword> <decl.name>checkAnyIsAKeyword</decl.name>(<decl.var.parameter><decl.var.parameter.argument_label>x</decl.var.parameter.argument_label>: <decl.var.parameter.type><syntaxtype.keyword>Any</syntaxtype.keyword></decl.var.parameter.type></decl.var.parameter>)</decl.function.free>
827830

828-
// RUN: %sourcekitd-test -req=cursor -pos=233:25 %s -- -F %S/../Inputs/libIDE-mock-sdk -I %t.tmp %s | %FileCheck -check-prefix=CHECK96 %s
829-
// CHECK96: source.lang.swift.expr.literal
830-
// CHECK96-EMPTY:
831-
// CHECK96-NEXT: s:Sq
831+
// RUN: %sourcekitd-test -req=cursor -pos=23:23 %s -- -F %S/../Inputs/libIDE-mock-sdk -I %t.tmp %s | %FileCheck -check-prefix=CHECK96 %s
832+
// CHECK96: source.lang.swift.ref.function.constructor
833+
// CHECK96-NEXT: init(_builtinStringLiteral:utf8CodeUnitCount:isASCII:)
834+
// CHECK96-NEXT: s:SS21_builtinStringLiteral17utf8CodeUnitCount7isASCIISSBp_BwBi1_tcfc
832835
// CHECK96-NEXT: source.lang.swift
833-
// CHECK96-NEXT: Int?
834-
// CHECK96-NEXT: $sSiXSqD
836+
// CHECK96-NEXT: (String.Type) -> (Builtin.RawPointer, Builtin.Word, Builtin.Int1) -> String
837+
// CHECK96-NEXT: $s21_builtinStringLiteral17utf8CodeUnitCount7isASCIISSBp_BwBi1_tcD
835838
// CHECK96-NEXT: Swift
836-
// CHECK96-NEXT: <Group>Optional</Group>
839+
// CHECK96-NEXT: <Group>String</Group>
837840
// CHECK96-NEXT: SYSTEM
838841

839-
// RUN: %sourcekitd-test -req=cursor -pos=234:25 %s -- -F %S/../Inputs/libIDE-mock-sdk -I %t.tmp %s | %FileCheck -check-prefix=CHECK97 %s
840-
// CHECK97: source.lang.swift.expr.literal
841-
// CHECK97-EMPTY:
842-
// CHECK97-NEXT: s:Sq
842+
// RUN: %sourcekitd-test -req=cursor -pos=233:19 %s -- -F %S/../Inputs/libIDE-mock-sdk -I %t.tmp %s | %FileCheck -check-prefix=CHECK97 %s
843+
// CHECK97: source.lang.swift.ref.function.constructor
844+
// CHECK97-NEXT: init(_builtinIntegerLiteral:)
845+
// CHECK97-NEXT: s:Si22_builtinIntegerLiteralSiBI_tcfc
843846
// CHECK97-NEXT: source.lang.swift
844-
// CHECK97-NEXT: Int?
845-
// CHECK97-NEXT: $sSiXSqD
847+
// CHECK97-NEXT: (Int.Type) -> (Builtin.IntLiteral) -> Int
848+
// CHECK97-NEXT: $s22_builtinIntegerLiteralSiBI_tcD
846849
// CHECK97-NEXT: Swift
847-
// CHECK97-NEXT: <Group>Optional</Group>
850+
// CHECK97-NEXT: <Group>Math/Integers</Group>
848851
// CHECK97-NEXT: SYSTEM
849852

850-
// RUN: %sourcekitd-test -req=cursor -pos=236:19 %s -- -F %S/../Inputs/libIDE-mock-sdk -I %t.tmp %s | %FileCheck -check-prefix=CHECK98 %s
851-
// CHECK98: source.lang.swift.expr.literal
852-
// CHECK98-EMPTY:
853-
// CHECK98-NEXT: s:Si
853+
// RUN: %sourcekitd-test -req=cursor -pos=241:12 %s -- -F %S/../Inputs/libIDE-mock-sdk -I %t.tmp %s | %FileCheck -check-prefix=CHECK98 %s
854+
// CHECK98: source.lang.swift.ref.function.constructor (236:5-236:36)
855+
// CHECK98-NEXT: init(integerLiteral:)
856+
// CHECK98-NEXT: s:11cursor_info1AV14integerLiteralACSi_tcfc
854857
// CHECK98-NEXT: source.lang.swift
855-
// CHECK98-NEXT: Int
856-
// CHECK98-NEXT: $sSiD
857-
// CHECK98-NEXT: Swift
858-
// CHECK98-NEXT: <Group>Math/Integers</Group>
859-
// CHECK98-NEXT: SYSTEM
858+
// CHECK98-NEXT: (A.Type) -> (Int) -> A
859+
// CHECK98-NEXT: $s14integerLiteral11cursor_info1AVSi_tcD
860+
// CHECK98-NEXT: cursor_info

test/SourceKit/CursorInfo/cursor_stdlib.swift

Lines changed: 45 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -235,55 +235,56 @@ let dictNonCost = [1:2, 3:d]
235235
// RUN: %sourcekitd-test_plain \
236236
// RUN: -req=open -name %s %s -- %s -sdk %sdk == \
237237
// RUN: -req=cursor -pos=25:29 %s -- %s -sdk %sdk | %FileCheck -check-prefix=CHECK-OBJ-LITERAL %s
238-
// CHECK-OBJ-LITERAL: source.lang.swift.expr.object_literal
239-
// CHECK-OBJ-LITERAL-EMPTY:
240-
// CHECK-OBJ-LITERAL: c:objc(cs)NSColor
241-
// CHECK-OBJ-LITERAL: source.lang.objc
242-
// CHECK-OBJ-LITERAL: NSColor
243-
// CHECK-OBJ-LITERAL: $sSo7NSColorCD
244-
// CHECK-OBJ-LITERAL: AppKit.NSColor
245-
// CHECK-OBJ-LITERAL: SYSTEM
238+
// CHECK-OBJ-LITERAL: source.lang.swift.ref.function.constructor
239+
// CHECK-OBJ-LITERAL-NEXT: init(_colorLiteralRed:green:blue:alpha:)
240+
// CHECK-OBJ-LITERAL-NEXT: s:So7NSColorC6AppKitE16_colorLiteralRed5green4blue5alphaABSf_S3ftcfc
241+
// CHECK-OBJ-LITERAL-NEXT: source.lang.swift
242+
// CHECK-OBJ-LITERAL-NEXT: (NSColor.Type) -> (Float, Float, Float, Float) -> NSColor
243+
// CHECK-OBJ-LITERAL-NEXT: $s16_colorLiteralRed5green4blue5alphaSo7NSColorCSf_S3ftcD
244+
// CHECK-OBJ-LITERAL-NEXT: AppKit
245+
// CHECK-OBJ-LITERAL-NEXT: SYSTEM
246+
246247

247248
// RUN: %sourcekitd-test_plain -req=cursor -pos=27:18 %s -- %s -sdk %sdk | %FileCheck -check-prefix=CHECK-ARRAY1 %s
248-
// CHECK-ARRAY1: source.lang.swift.expr.literal
249-
// CHECK-ARRAY1-EMPTY:
250-
// CHECK-ARRAY1: s:Sa
251-
// CHECK-ARRAY1: source.lang.swift
252-
// CHECK-ARRAY1: [Int]
253-
// CHECK-ARRAY1: $sSiXSaD
254-
// CHECK-ARRAY1: Swift
255-
// CHECK-ARRAY1: <Group>Collection/Array</Group>
256-
// CHECK-ARRAY1: SYSTEM
249+
// CHECK-ARRAY1: source.lang.swift.ref.function.constructor
250+
// CHECK-ARRAY1-NEXT: init(arrayLiteral:)
251+
// CHECK-ARRAY1-NEXT: s:Sa12arrayLiteralSayxGxd_tcfc
252+
// CHECK-ARRAY1-NEXT: source.lang.swift
253+
// CHECK-ARRAY1-NEXT: <Element> (Array<Element>.Type) -> (Element...) -> Array<Element>
254+
// CHECK-ARRAY1-NEXT: $s12arrayLiteralSayxGxd_tcD
255+
// CHECK-ARRAY1-NEXT: Swift
256+
// CHECK-ARRAY1-NEXT: <Group>Collection/Array</Group>
257+
// CHECK-ARRAY1-NEXT: SYSTEM
257258

258259
// RUN: %sourcekitd-test_plain -req=cursor -pos=28:19 %s -- %s -sdk %sdk | %FileCheck -check-prefix=CHECK-ARRAY2 %s
259-
// CHECK-ARRAY2: source.lang.swift.expr.literal
260-
// CHECK-ARRAY2-EMPTY:
261-
// CHECK-ARRAY2: s:Sa
262-
// CHECK-ARRAY2: source.lang.swift
263-
// CHECK-ARRAY2: [Any]
264-
// CHECK-ARRAY2: $sypXSaD
265-
// CHECK-ARRAY2: Swift
266-
// CHECK-ARRAY2: <Group>Collection/Array</Group>
267-
// CHECK-ARRAY2: SYSTEM
260+
// CHECK-ARRAY2: source.lang.swift.ref.function.constructor
261+
// CHECK-ARRAY2-NEXT: init(arrayLiteral:)
262+
// CHECK-ARRAY2-NEXT: s:Sa12arrayLiteralSayxGxd_tcfc
263+
// CHECK-ARRAY2-NEXT: source.lang.swift
264+
// CHECK-ARRAY2-NEXT: <Element> (Array<Element>.Type) -> (Element...) -> Array<Element>
265+
// CHECK-ARRAY2-NEXT: $s12arrayLiteralSayxGxd_tcD
266+
// CHECK-ARRAY2-NEXT: Swift
267+
// CHECK-ARRAY2-NEXT: <Group>Collection/Array</Group>
268+
// CHECK-ARRAY2-NEXT: SYSTEM
268269

269270
// RUN: %sourcekitd-test_plain -req=cursor -pos=30:19 %s -- %s -sdk %sdk | %FileCheck -check-prefix=CHECK-DICT1 %s
270-
// CHECK-DICT1: source.lang.swift.expr.literal
271-
// CHECK-DICT1-EMPTY:
272-
// CHECK-DICT1: s:SD
273-
// CHECK-DICT1: source.lang.swift
274-
// CHECK-DICT1: [Int : Int]
275-
// CHECK-DICT1: $sS2iXSDD
276-
// CHECK-DICT1: Swift
277-
// CHECK-DICT1: <Group>Collection/HashedCollections</Group>
278-
// CHECK-DICT1: SYSTEM
271+
// CHECK-DICT1: source.lang.swift.ref.function.constructor
272+
// CHECK-DICT1-NEXT: init(dictionaryLiteral:)
273+
// CHECK-DICT1-NEXT: s:SD17dictionaryLiteralSDyxq_Gx_q_td_tcfc
274+
// CHECK-DICT1-NEXT: source.lang.swift
275+
// CHECK-DICT1-NEXT: <Key, Value where Key : Hashable> (Dictionary<Key, Value>.Type) -> ((Key, Value)...) -> Dictionary<Key, Value>
276+
// CHECK-DICT1-NEXT: $s17dictionaryLiteralSDyxq_Gx_q_td_tcD
277+
// CHECK-DICT1-NEXT: Swift
278+
// CHECK-DICT1-NEXT: <Group>Collection/HashedCollections</Group>
279+
// CHECK-DICT1-NEXT: SYSTEM
279280

280281
// RUN: %sourcekitd-test_plain -req=cursor -pos=31:19 %s -- %s -sdk %sdk | %FileCheck -check-prefix=CHECK-DICT2 %s
281-
// CHECK-DICT2: source.lang.swift.expr.literal
282-
// CHECK-DICT2-EMPTY:
283-
// CHECK-DICT2: s:SD
284-
// CHECK-DICT2: source.lang.swift
285-
// CHECK-DICT2: [Int : Any]
286-
// CHECK-DICT2: $sSiypXSDD
287-
// CHECK-DICT2: Swift
288-
// CHECK-DICT2: <Group>Collection/HashedCollections</Group>
289-
// CHECK-DICT2: SYSTEM
282+
// CHECK-DICT2: source.lang.swift.ref.function.constructor
283+
// CHECK-DICT2-NEXT: init(dictionaryLiteral:)
284+
// CHECK-DICT2-NEXT: s:SD17dictionaryLiteralSDyxq_Gx_q_td_tcfc
285+
// CHECK-DICT2-NEXT: source.lang.swift
286+
// CHECK-DICT2-NEXT: <Key, Value where Key : Hashable> (Dictionary<Key, Value>.Type) -> ((Key, Value)...) -> Dictionary<Key, Value>
287+
// CHECK-DICT2-NEXT: $s17dictionaryLiteralSDyxq_Gx_q_td_tcD
288+
// CHECK-DICT2-NEXT: Swift
289+
// CHECK-DICT2-NEXT: <Group>Collection/HashedCollections</Group>
290+
// CHECK-DICT2-NEXT: SYSTEM

tools/SourceKit/lib/SwiftLang/SwiftLangSupport.cpp

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -333,13 +333,6 @@ UIdent SwiftLangSupport::getUIDForDecl(const Decl *D, bool IsRef) {
333333
return UIdentVisitor(IsRef).visit(const_cast<Decl*>(D));
334334
}
335335

336-
UIdent SwiftLangSupport::getUIDForLiteral(const Expr *Lit) {
337-
if (dyn_cast<ObjectLiteralExpr>(Lit)) {
338-
return KindExprObjectLiteral;
339-
}
340-
return KindExprLiteral;
341-
}
342-
343336
UIdent SwiftLangSupport::getUIDForExtensionOfDecl(const Decl *D) {
344337
switch (D->getKind()) {
345338
case swift::DeclKind::Struct:

tools/SourceKit/lib/SwiftLang/SwiftLangSupport.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -427,7 +427,6 @@ class SwiftLangSupport : public LangSupport {
427427
static SourceKit::UIdent getUIDForDeclLanguage(const swift::Decl *D);
428428
static SourceKit::UIdent getUIDForDecl(const swift::Decl *D,
429429
bool IsRef = false);
430-
static SourceKit::UIdent getUIDForLiteral(const swift::Expr *Lit);
431430
static SourceKit::UIdent getUIDForExtensionOfDecl(const swift::Decl *D);
432431
static SourceKit::UIdent getUIDForLocalVar(bool IsRef = false);
433432
static SourceKit::UIdent getUIDForRefactoringKind(

0 commit comments

Comments
 (0)