Skip to content
Open
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
Original file line number Diff line number Diff line change
Expand Up @@ -44,13 +44,7 @@ object DebugTools {
loadExpressionCompilers(debuggee, resolver, logger)
}

val decoder =
if (debuggee.scalaVersion.isScala3) {
TimeUtils.logTime(logger, "Loaded step filter") {
loadDecoder(debuggee.scalaVersion, resolver, logger)
}
} else None

// Load sourceLookUp first - this reads all class files from the classpath
val sourceLookUp = TimeUtils.logTime(logger, "Loaded all sources and classes") {
val classEntries = debuggee.classEntries
val distinctEntries = classEntries
Expand All @@ -63,6 +57,14 @@ object DebugTools {
SourceLookUpProvider(distinctEntries, logger)
}

// Load decoder after sourceLookUp - the decoder can reuse cached class data
Copy link

Copilot AI Jan 12, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The comment states "the decoder can reuse cached class data" but this appears to be inaccurate. The decoder (Scala3Decoder) creates its own classloader and reads from debuggee.classPath independently (see Scala3DecoderBridge line 46). There's no evidence of data sharing or cache reuse between sourceLookUp and the decoder. Consider revising this comment to more accurately describe the reason for this initialization order, such as "ensures all class entries are processed before decoder initialization" or similar.

Suggested change
// Load decoder after sourceLookUp - the decoder can reuse cached class data
// Load decoder after sourceLookUp to ensure all class entries are processed first

Copilot uses AI. Check for mistakes.
val decoder =
if (debuggee.scalaVersion.isScala3) {
TimeUtils.logTime(logger, "Loaded step filter") {
loadDecoder(debuggee.scalaVersion, resolver, logger)
}
} else None

new DebugTools(allCompilers, decoder, sourceLookUp)
}

Expand Down
Loading