Skip to content

Commit

Permalink
Adjust the API name entry for nested classes
Browse files Browse the repository at this point in the history
**Problem**
Some build pipelining tests fail on the latest sbt RC.

```
Error:  (sbt-test / scripted) Failed tests:
Error:  	pipelining/Yjava-tasty-fromjavaobject
Error:  	pipelining/Yjava-tasty-paths
```

This is likely caused by inconsistent capturing of APIs
from Java sources in ExtractAPI vs AnalyzingJavaCompiler in Zinc.

**Solution**
This adjusts the API name entry for Java nested classes.
  • Loading branch information
eed3si9n committed Apr 28, 2024
1 parent 837ed3a commit da05f1f
Showing 1 changed file with 17 additions and 1 deletion.
18 changes: 17 additions & 1 deletion compiler/src/dotty/tools/dotc/sbt/ExtractDependencies.scala
Original file line number Diff line number Diff line change
Expand Up @@ -105,8 +105,24 @@ object ExtractDependencies {
val name: String = "sbt-deps"
val description: String = "sends information on classes' dependencies to sbt"

/** Construct String name for the given sym.
* See https://github.com/sbt/zinc/blob/v1.9.6/internal/zinc-apiinfo/src/main/scala/sbt/internal/inc/ClassToAPI.scala#L86-L99
*
* For a Java nested class M of a class C returns C's canonical name + "." + M's simple name.
*/
def classNameAsString(sym: Symbol)(using Context): String =
sym.fullName.stripModuleClassSuffix.toString
def isJava(sym: Symbol)(using Context): Boolean =
Option(sym.source) match
case Some(src) => src.toString.endsWith(".java")
case None => false
def classNameAsString0(sym: Symbol)(using Context): String =
sym.fullName.stripModuleClassSuffix.toString
def javaClassNameAsString(sym: Symbol)(using Context): String =
if sym.owner.isClass && !sym.owner.isRoot then
javaClassNameAsString(sym.owner) + "." + sym.name.stripModuleClassSuffix.toString
else classNameAsString0(sym)
if isJava(sym) then javaClassNameAsString(sym)
else classNameAsString0(sym)

/** Report an internal error in incremental compilation. */
def internalError(msg: => String, pos: SrcPos = NoSourcePosition)(using Context): Unit =
Expand Down

0 comments on commit da05f1f

Please sign in to comment.