mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
[6.2] [SourceKit] Fix raw identifier handling for semantic tokens
The logic here was unnecessary, the SourceRange gets converted to a CharSourceRange in the function being called, which handles raw identifiers correctly. 6.2-only since this is already fixed on main. rdar://152273926
This commit is contained in:
@@ -868,11 +868,8 @@ bool SemaAnnotator::passCallAsFunctionReference(ValueDecl *D, SourceLoc Loc,
|
||||
|
||||
bool SemaAnnotator::
|
||||
passReference(ValueDecl *D, Type Ty, DeclNameLoc Loc, ReferenceMetaData Data) {
|
||||
SourceManager &SM = D->getASTContext().SourceMgr;
|
||||
SourceLoc BaseStart = Loc.getBaseNameLoc(), BaseEnd = BaseStart;
|
||||
if (BaseStart.isValid() && SM.extractText({BaseStart, 1}) == "`")
|
||||
BaseEnd = Lexer::getLocForEndOfToken(SM, BaseStart.getAdvancedLoc(1));
|
||||
return passReference(D, Ty, BaseStart, {BaseStart, BaseEnd}, Data);
|
||||
SourceLoc BaseLoc = Loc.getBaseNameLoc();
|
||||
return passReference(D, Ty, BaseLoc, BaseLoc, Data);
|
||||
}
|
||||
|
||||
bool SemaAnnotator::
|
||||
|
||||
33
test/SourceKit/SemanticTokens/raw_identifiers.swift
Normal file
33
test/SourceKit/SemanticTokens/raw_identifiers.swift
Normal file
@@ -0,0 +1,33 @@
|
||||
// RUN: %empty-directory(%t)
|
||||
// RUN: split-file %s %t
|
||||
// RUN: %sourcekitd-test -req=semantic-tokens %t/main.swift -- %t/main.swift > %t/result.json
|
||||
// RUN: diff -u %t/tokens.json %t/result.json
|
||||
|
||||
//--- main.swift
|
||||
func `foo`(x: Int) {}
|
||||
`foo`(x: 0)
|
||||
|
||||
func `foo bar baz`() {}
|
||||
`foo bar baz`()
|
||||
|
||||
//--- tokens.json
|
||||
{
|
||||
key.semantic_tokens: [
|
||||
{
|
||||
key.kind: source.lang.swift.ref.struct,
|
||||
key.offset: 14,
|
||||
key.length: 3,
|
||||
key.is_system: 1
|
||||
},
|
||||
{
|
||||
key.kind: source.lang.swift.ref.function.free,
|
||||
key.offset: 22,
|
||||
key.length: 5
|
||||
},
|
||||
{
|
||||
key.kind: source.lang.swift.ref.function.free,
|
||||
key.offset: 59,
|
||||
key.length: 13
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user