Skip to content

Commit aa91e9f

Browse files
committed
Remove locale dependent FileSystemException check
Fin SourceFile, files that do not exist are expected and related exceptions should be ignored. There are two relevant cases: scala> java.nio.file.Files.newInputStream(java.nio.file.FileSystems.getDefault().getPath("does-not-exist")) java.nio.file.NoSuchFileException: does-not-exist scala> java.nio.file.Files.newInputStream(java.nio.file.FileSystems.getDefault().getPath("regular-file-instead-of-directory/filename")) java.nio.file.FileSystemException: regular-file-instead-of-directory/filename: Not a directory Ideally, other I/O errors would be propagated to the caller. However, there is no reliable way to distinguish them based on the exceptions alone. In particular, the message cannot be checked, because it depends on the operating system and it is localized. Revert the addition of the check and just accept this.
1 parent e5f7272 commit aa91e9f

File tree

1 file changed

+2
-3
lines changed

1 file changed

+2
-3
lines changed

compiler/src/dotty/tools/dotc/util/SourceFile.scala

+2-3
Original file line numberDiff line numberDiff line change
@@ -275,12 +275,11 @@ object SourceFile {
275275

276276
def apply(file: AbstractFile | Null, codec: Codec): SourceFile =
277277
// Files.exists is slow on Java 8 (https://rules.sonarsource.com/java/tag/performance/RSPEC-3725),
278-
// so cope with failure; also deal with path prefix "Not a directory".
278+
// so cope with failure.
279279
val chars =
280280
try new String(file.toByteArray, codec.charSet).toCharArray
281281
catch
282-
case _: NoSuchFileException => Array.empty[Char]
283-
case fse: FileSystemException if fse.getMessage.endsWith("Not a directory") => Array.empty[Char]
282+
case _: FileSystemException => Array.empty[Char]
284283

285284
if isScript(file, chars) then
286285
ScriptSourceFile(file, chars)

0 commit comments

Comments
 (0)