From 3cb0fe45918a1279a46c5ebae8c3a74fd1c48133 Mon Sep 17 00:00:00 2001 From: Anton Sviridov Date: Wed, 16 Aug 2023 10:12:32 +0100 Subject: [PATCH] Handle special symbol name from Scala 3 Semanticdb see https://sourcegraph.com/github.com/lampepfl/dotty/-/blob/compiler/src/dotty/tools/dotc/semanticdb/SemanticSymbolBuilder.scala?L59 --- .../com/sourcegraph/scip_semanticdb/SymbolDescriptor.java | 2 +- .../com/sourcegraph/semanticdb_javac/SemanticdbSymbols.java | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/SymbolDescriptor.java b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/SymbolDescriptor.java index 77bfb32a..db6a1c43 100644 --- a/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/SymbolDescriptor.java +++ b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/SymbolDescriptor.java @@ -59,7 +59,7 @@ public SymbolDescriptor entryPoint() { if (SemanticdbSymbols.isLocal(symbol)) { return new SymbolDescriptor(Descriptor.local(symbol), SemanticdbSymbols.NONE); } - if (SemanticdbSymbols.NONE.equals(symbol)) { + if (SemanticdbSymbols.isNone(symbol)) { return SymbolDescriptor.NONE; } readChar(); diff --git a/semanticdb-java/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbSymbols.java b/semanticdb-java/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbSymbols.java index 94ca1695..652101c5 100644 --- a/semanticdb-java/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbSymbols.java +++ b/semanticdb-java/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbSymbols.java @@ -12,6 +12,7 @@ public final class SemanticdbSymbols { public static String NONE = ""; + public static String NONE_STUB = ""; public static String ROOT_PACKAGE = "_root_/"; /** Creates a new global SemanticDB symbol. */ @@ -30,6 +31,10 @@ public static boolean isLocal(String symbol) { return symbol.startsWith("local"); } + public static boolean isNone(String symbol) { + return NONE.equals(symbol) || NONE_STUB.equals(symbol); + } + public static boolean isGlobal(String symbol) { return !isLocal(symbol); }