From 65167ba2731e4a30b7dd1e74bccef866a86c6d64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Micheloud?= Date: Mon, 10 Feb 2020 22:58:28 +0100 Subject: [PATCH] Fix issue #8124 --- .../src/dotty/tools/dotc/config/Settings.scala | 3 ++- .../test/dotty/tools/dotc/SettingsTests.scala | 10 ++++++++++ .../dotty/tools/dottydoc/SettingsTests.scala | 18 ++++++++++++++++++ 3 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 doc-tool/test/dotty/tools/dottydoc/SettingsTests.scala diff --git a/compiler/src/dotty/tools/dotc/config/Settings.scala b/compiler/src/dotty/tools/dotc/config/Settings.scala index 4611fcc9bc00..70e7d0b0b31b 100644 --- a/compiler/src/dotty/tools/dotc/config/Settings.scala +++ b/compiler/src/dotty/tools/dotc/config/Settings.scala @@ -150,7 +150,8 @@ object Settings { update(output, args) } case (StringTag, arg2 :: args2) => - update(arg2, args2) + if (arg2 startsWith "-") missingArg + else update(arg2, args2) case (IntTag, arg2 :: args2) => try { val x = arg2.toInt diff --git a/compiler/test/dotty/tools/dotc/SettingsTests.scala b/compiler/test/dotty/tools/dotc/SettingsTests.scala index a48e14cfaaec..626f595e44bd 100644 --- a/compiler/test/dotty/tools/dotc/SettingsTests.scala +++ b/compiler/test/dotty/tools/dotc/SettingsTests.scala @@ -28,4 +28,14 @@ class SettingsTests { assertEquals(0, reporter.errorCount) assertTrue(Files.exists(out)) } + + @Test def t8124: Unit = { + val source = Paths.get("tests/pos/Foo.scala").normalize + val outputDir = Paths.get("out/testSettings").normalize + if (Files.notExists(outputDir)) Files.createDirectory(outputDir) + val options = Array("-encoding", "-d", outputDir.toString, source.toString) + val reporter = Main.process(options) + assertEquals(1, reporter.errorCount) + } + } diff --git a/doc-tool/test/dotty/tools/dottydoc/SettingsTests.scala b/doc-tool/test/dotty/tools/dottydoc/SettingsTests.scala new file mode 100644 index 000000000000..2ee945953a80 --- /dev/null +++ b/doc-tool/test/dotty/tools/dottydoc/SettingsTests.scala @@ -0,0 +1,18 @@ +package dotty.tools +package dottydoc + +import org.junit.Test +import org.junit.Assert._ + +class SettingsTests { + + @Test def t8124: Unit = { + val source = "tests/pos/Foo.scala" + val url = "https://github.com/lampepfl/dotty/tree/master/tests" + val options = Array("-project", "-project-url", url, source) + val reporter = Main.process(options) + assertEquals(2, reporter.errorCount) + assertEquals("missing argument for option -project", reporter.allErrors.last.message) + } + +}