From 4b125b158ebac1654ae1ae4a2d64b08cf9d3452f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcial=20Gai=C3=9Fert?= Date: Wed, 11 Sep 2024 14:28:46 +0200 Subject: [PATCH] Also handle empty/one-element list --- .../effekt/generator/js/Transformer.scala | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/effekt/shared/src/main/scala/effekt/generator/js/Transformer.scala b/effekt/shared/src/main/scala/effekt/generator/js/Transformer.scala index faa7b5b85..e9a9fe88b 100644 --- a/effekt/shared/src/main/scala/effekt/generator/js/Transformer.scala +++ b/effekt/shared/src/main/scala/effekt/generator/js/Transformer.scala @@ -136,14 +136,21 @@ trait Transformer { // Externs // ------- - def normalizeExternStrings(l: List[String])(using Context): List[String] = { - val start = l.head - val end = l.last - val mid = l.tail.init - if (start.matches("""^\s.*""") || end.matches(""".*\s$""")) { - Context.warning("Extern string in js has trailing / leading whitespace. This will be removed.") - } - start.stripLeading() +: mid :+ end.stripTrailing() + def normalizeExternStrings(l: List[String])(using Context): List[String] = l match { + case Nil => Nil + case List(s) => + if (s.matches("""^\s.*""") || s.matches(""".*\s$""")) { + Context.warning("Extern string in js has trailing / leading whitespace. This will be removed.") + } + List(s.strip()) + case l => + val start = l.head + val end = l.last + val mid = l.tail.init + if (start.matches("""^\s.*""") || end.matches(""".*\s$""")) { + Context.warning("Extern string in js has trailing / leading whitespace. This will be removed.") + } + start.stripLeading() +: mid :+ end.stripTrailing() } // Separate Compilation (Website)