Skip to content

Commit 9bff673

Browse files
niklasftgodzik
authored andcommitted
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. [Cherry-picked aa91e9f]
1 parent 665c1f8 commit 9bff673

File tree

1 file changed

+2
-3
lines changed

1 file changed

+2
-3
lines changed

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

Lines changed: 2 additions & 3 deletions
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)