Skip to content

Commit d582189

Browse files
authored
Merge pull request #493 from ckipp01/darnFunctions
2 parents d54ebf2 + 46ef27e commit d582189

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/SignatureFormatter.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ public class SignatureFormatter {
2323

2424
private static final Type NOTHING_SYMBOL = typeRef("scala/Nothing#");
2525
private static final String FUNCTION_SYMBOL_PREFIX = "scala/Function";
26+
// Special case scala/Function object to not conflict with Function1 for example
27+
private static final String FUNCTION_OBJECT = "scala/Function.";
2628
private static final String TUPLE_SYMBOL_PREFIX = "scala/Tuple";
2729
private static final String ARRAY_SYMBOL = "scala/Array#";
2830
private static final String ENUM_SYMBOL = "java/lang/Enum#";
@@ -557,7 +559,10 @@ private String formatType(Type type) {
557559
b.append(formatType(typeRef.getTypeArguments(0)));
558560
b.append("[]");
559561
}
560-
} else if (isScala && typeRef.getSymbol().startsWith(FUNCTION_SYMBOL_PREFIX)) {
562+
} else if (isScala
563+
&& typeRef.getSymbol().startsWith(FUNCTION_SYMBOL_PREFIX)
564+
&& typeRef.getTypeArgumentsCount() > 0
565+
&& !typeRef.getSymbol().startsWith(FUNCTION_OBJECT)) {
561566
int n = typeRef.getTypeArgumentsCount() - 1;
562567
if (n == 0) {
563568
// Special-case for Function1[A, B]: don't wrap `A` in parenthesis like this `(A) => B`

0 commit comments

Comments
 (0)