Skip to content

Commit 0f1afb5

Browse files
authored
Merge pull request #922 from NicolasRouquette/master
Failed test demonstrates the problem of #921
2 parents b4513e7 + b67e5ea commit 0f1afb5

File tree

3 files changed

+26
-1
lines changed

3 files changed

+26
-1
lines changed

scalafix-cli/src/main/scala/scalafix/internal/v1/Args.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ case class Args(
187187
def configuredSymtab: Configured[SymbolTable] = {
188188
Try(
189189
ClasspathOps.newSymbolTable(
190-
classpath = classpath,
190+
classpath = validatedClasspath,
191191
out = out
192192
)
193193
) match {

scalafix-reflect/src/main/scala/scalafix/internal/reflect/ClasspathOps.scala

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,10 @@ object ClasspathOps {
5555
path.resolve(META_INF).resolve(SEMANTICDB).toFile.isDirectory
5656
}
5757

58+
private def isJar(path: AbsolutePath): Boolean =
59+
path.isFile &&
60+
path.toFile.getName.endsWith(".jar")
61+
5862
def autoClasspath(roots: List[AbsolutePath]): Classpath = {
5963
val buffer = List.newBuilder[AbsolutePath]
6064
val visitor = new SimpleFileVisitor[Path] {
@@ -71,6 +75,7 @@ object ClasspathOps {
7175
}
7276
}
7377
roots.foreach(x => Files.walkFileTree(x.toNIO, visitor))
78+
roots.filter(isJar).foreach(buffer += _)
7479
Classpath(buffer.result())
7580
}
7681

scalafix-tests/unit/src/test/scala/scalafix/tests/cli/CliSemanticSuite.scala

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,12 @@ package scalafix.tests.cli
22

33
import java.nio.charset.StandardCharsets
44
import java.nio.file.Files
5+
56
import scala.meta.internal.io.PathIO
67
import scala.meta.internal.io.FileIO
78
import scala.meta.io.Classpath
89
import scalafix.cli._
10+
import scalafix.tests.core.Classpaths
911

1012
class CliSemanticSuite extends BaseCliSuite {
1113

@@ -125,6 +127,24 @@ class CliSemanticSuite extends BaseCliSuite {
125127
files = explicitResultTypesPath.toString()
126128
)
127129

130+
checkSemantic(
131+
name = "explicit result types OK (auto-classpath)",
132+
args = Array(
133+
"--auto-classpath",
134+
"--auto-classpath-roots",
135+
PathIO.workingDirectory.toString
136+
) ++ Classpaths.scalaLibrary.entries.to[Array].flatMap { path =>
137+
Array(
138+
"--auto-classpath-roots",
139+
path.toString
140+
)
141+
},
142+
expectedExit = ExitStatus.Ok,
143+
rule = "ExplicitResultTypes",
144+
path = explicitResultTypesPath,
145+
files = explicitResultTypesPath.toString()
146+
)
147+
128148
checkSemantic(
129149
name = "incomplete classpath does not result in error exit code",
130150
args = Array(

0 commit comments

Comments
 (0)