Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 30 additions & 18 deletions integration/failure/compile-error/src/CompileErrorTests.scala
Original file line number Diff line number Diff line change
Expand Up @@ -10,25 +10,37 @@ object CompileErrorTests extends UtestIntegrationTestSuite {
val res = tester.eval("foo.scalaVersion")

assert(!res.isSuccess)
val normalizedError = res.err
.replace(tester.workspacePath.toString, "<workspace-path>")
.linesIterator
.filter(s => s.startsWith("[error] "))
.toVector
.map(_.replace('\\', '/'))

locally {
assert(res.err.contains("""bar.mill:15:9"""))
assert(res.err.contains("""println(doesntExist)"""))
assert(res.err.contains("""Not found: doesntExist"""))
}

locally {
assert(res.err.contains("""qux.mill:4:34"""))
assert(res.err.contains("""myMsg.substring("0")"""))
assert(res.err.contains("""Found: ("0" : String)"""))
assert(res.err.contains("""Required: Int"""))
}

locally {
assert(res.err.contains("""build.mill:11:5"""))
assert(res.err.contains("""foo.noSuchMethod"""))
assert(res.err.contains("""value noSuchMethod is not a member"""))
}
// For now some error messages still show generated/mangled code; not ideal, but it'll do
assertGoldenLiteral(
normalizedError,
Vector(
"[error] -- [E007] Type Mismatch Error: <workspace-path>/qux.mill:4:33 ",
"[error] 4 |def myOtherMsg = myMsg.substring(\"0\")",
"[error] | ^^^",
"[error] | Found: (\"0\" : String)",
"[error] | Required: Int",
"[error] |",
"[error] | longer explanation available when compiling with `-explain`",
"[error] -- [E006] Not Found Error: <workspace-path>/bar.mill:15:8 ",
"[error] 15 |println(doesntExist)",
"[error] | ^^^^^^^^^^^",
"[error] | Not found: doesntExist",
"[error] |",
"[error] | longer explanation available when compiling with `-explain`",
"[error] -- [E008] Not Found Error: <workspace-path>/build.mill:11:4 ",
"[error] 11 |foo.noSuchMethod",
"[error] |^^^^^^^^^^^^^^^^",
"[error] |value noSuchMethod is not a member of object package_.this.foo",
"[error] three errors found"
)
)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,71 +12,68 @@ object RootModuleCompileErrorTests extends UtestIntegrationTestSuite {

assert(!res.isSuccess)

locally {
// For now these error messages still show generated/mangled code; not ideal, but it'll do
assert(res.err.contains("""build.mill:7:67"""))
assert(res.err.contains("""Not found: type UnknownRootModule"""))
assert(res.err.contains(
"""abstract class package_ extends _root_.mill.util.MainRootModule, UnknownRootModule {"""
))
assert(
res.err.contains(""" ^^^^^^^^^^^^^^^^^""")
)
}

locally {
// For now these error messages still show generated/mangled code; not ideal, but it'll do
assert(res.err.replace('\\', '/').contains("""foo/package.mill:6:96"""))
assert(res.err.contains("""Not found: type UnknownFooModule"""))
assert(res.err.contains(
"""abstract class package_ extends _root_.mill.api.internal.SubfolderModule(build.millDiscover), UnknownFooModule {"""
))
assert(res.err.contains(
""" ^^^^^^^^^^^^^^^^"""
))
}

locally {
assert(res.err.contains("""build.mill:8:22"""))
assert(res.err.contains("""Not found: unknownRootInternalDef"""))
assert(res.err.contains("""def scalaVersion = unknownRootInternalDef"""))
assert(res.err.contains(""" ^^^^^^^^^^^^^^^^^^^^^^"""))
}

locally {
assert(res.err.contains("""build.mill:5:23"""))
assert(res.err.contains("""Not found: type UnknownBeforeModule"""))
assert(res.err.contains("""object before extends UnknownBeforeModule"""))
assert(res.err.contains(""" ^^^^^^^^^^^^^^^^^^^"""))
}
val normalizedError = res.err
.replace(workspacePath.toString, "<workspace-path>")
.linesIterator
.filter(s => s.startsWith("[error] "))
.toVector
.map(_.replace('\\', '/'))

locally {
assert(res.err.contains("""build.mill:12:22"""))
assert(res.err.contains("""Not found: type UnknownAfterModule"""))
assert(res.err.contains("""object after extends UnknownAfterModule"""))
assert(res.err.contains(""" ^^^^^^^^^^^^^^^^^^"""))
}

locally {
assert(res.err.replace('\\', '/').contains("""foo/package.mill:7:22"""))
assert(res.err.contains("""Not found: unknownFooInternalDef"""))
assert(res.err.contains("""def scalaVersion = unknownFooInternalDef"""))
assert(res.err.contains(""" ^^^^^^^^^^^^^^^^^^^^^"""))
}

locally {
assert(res.err.replace('\\', '/').contains("""foo/package.mill:4:23"""))
assert(res.err.contains("""Not found: type UnknownBeforeFooModule"""))
assert(res.err.contains("""object before extends UnknownBeforeFooModule"""))
assert(res.err.contains(""" ^^^^^^^^^^^^^^^^^^^^^^"""))
}

locally {
assert(res.err.replace('\\', '/').contains("""foo/package.mill:11:22"""))
assert(res.err.contains("""Not found: type UnknownAfterFooModule"""))
assert(res.err.contains("""object after extends UnknownAfterFooModule"""))
assert(res.err.contains(""" ^^^^^^^^^^^^^^^^^^^^^"""))
}
// For now some error messages still show generated/mangled code; not ideal, but it'll do
assertGoldenLiteral(
normalizedError,
Vector(
"[error] -- [E006] Not Found Error: <workspace-path>/build.mill:12:75 ",
"[error] 12 |",
"[error] | ^^^^^^^^^^^^^^^^^",
"[error] | Not found: type UnknownRootModule",
"[error] |",
"[error] | longer explanation available when compiling with `-explain`",
"[error] -- [E006] Not Found Error: <workspace-path>/foo/package.mill:11:103 ",
"[error] 11 |",
"[error] | ^^^^^^^^^^^^^^^^",
"[error] | Not found: type UnknownFooModule",
"[error] |",
"[error] | longer explanation available when compiling with `-explain`",
"[error] -- [E006] Not Found Error: <workspace-path>/build.mill:5:22 ",
"[error] 5 |object before extends UnknownBeforeModule",
"[error] | ^^^^^^^^^^^^^^^^^^^",
"[error] | Not found: type UnknownBeforeModule",
"[error] |",
"[error] | longer explanation available when compiling with `-explain`",
"[error] -- [E006] Not Found Error: <workspace-path>/build.mill:8:21 ",
"[error] 8 | def scalaVersion = unknownRootInternalDef",
"[error] | ^^^^^^^^^^^^^^^^^^^^^^",
"[error] | Not found: unknownRootInternalDef",
"[error] |",
"[error] | longer explanation available when compiling with `-explain`",
"[error] -- [E006] Not Found Error: <workspace-path>/build.mill:11:21 ",
"[error] 11 |object after extends UnknownAfterModule",
"[error] | ^^^^^^^^^^^^^^^^^^",
"[error] | Not found: type UnknownAfterModule",
"[error] |",
"[error] | longer explanation available when compiling with `-explain`",
"[error] -- [E006] Not Found Error: <workspace-path>/foo/package.mill:4:22 ",
"[error] 4 |object before extends UnknownBeforeFooModule",
"[error] | ^^^^^^^^^^^^^^^^^^^^^^",
"[error] | Not found: type UnknownBeforeFooModule",
"[error] |",
"[error] | longer explanation available when compiling with `-explain`",
"[error] -- [E006] Not Found Error: <workspace-path>/foo/package.mill:7:21 ",
"[error] 7 | def scalaVersion = unknownFooInternalDef",
"[error] | ^^^^^^^^^^^^^^^^^^^^^",
"[error] | Not found: unknownFooInternalDef",
"[error] |",
"[error] | longer explanation available when compiling with `-explain`",
"[error] -- [E006] Not Found Error: <workspace-path>/foo/package.mill:10:21 ",
"[error] 10 |object after extends UnknownAfterFooModule",
"[error] | ^^^^^^^^^^^^^^^^^^^^^",
"[error] | Not found: type UnknownAfterFooModule",
"[error] |",
"[error] | longer explanation available when compiling with `-explain`",
"[error] 8 errors found"
)
)
}
}
}
4 changes: 2 additions & 2 deletions libs/javalib/src/mill/javalib/SemanticDbJavaModule.scala
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,7 @@ object SemanticDbJavaModule extends ExternalModule with CoursierModule {
)
}

private val userCodeStartMarker = "//SOURCECODE_ORIGINAL_CODE_START_MARKER"
private val userCodeStartMarker = "///SOURCE_CODE_START"

private def postProcessed(
generatedSourceSemdb: os.Path,
Expand All @@ -255,7 +255,7 @@ object SemanticDbJavaModule extends ExternalModule with CoursierModule {
val generatedSource = sourceroot / generatedSourceSubPath
val generatedSourceLines = os.read.lines(generatedSource)
val source = generatedSourceLines
.collectFirst { case s"//SOURCECODE_ORIGINAL_FILE_PATH=$rest" => os.Path(rest.trim) }
.collectFirst { case s"///SOURCE_CODE_START:$rest" => os.Path(rest.trim) }
.getOrElse {
sys.error(s"Cannot get original source from generated source $generatedSource")
}
Expand Down
114 changes: 0 additions & 114 deletions libs/javalib/worker/src/mill/javalib/zinc/PositionMapper.scala

This file was deleted.

Loading
Loading