diff --git a/core/play/src/main/scala/play/core/parsers/Multipart.scala b/core/play/src/main/scala/play/core/parsers/Multipart.scala index d5d6ae64c..c7d9c9082 100644 --- a/core/play/src/main/scala/play/core/parsers/Multipart.scala +++ b/core/play/src/main/scala/play/core/parsers/Multipart.scala @@ -141,19 +141,11 @@ object Multipart: Right( MultipartFormData( parts - .collect { case dp: DataPart => - dp - } + .collect { case dp: DataPart => dp } .groupBy(_.key) - .map { case (key, partValues) => - key -> partValues.map(_.value) - }, - parts.collect { case fp: FilePart[A] => - fp - }, - parts.collect { case bad: BadPart => - bad - } + .map { case (key, partValues) => key -> partValues.map(_.value) }, + parts.collect { case fp: FilePart[?] => fp.asInstanceOf[FilePart[A]] }, + parts.collect { case bad: BadPart => bad } ) ) ) diff --git a/dev-mode/routes-compiler/src/main/scala/play/routes/compiler/RoutesFileParser.scala b/dev-mode/routes-compiler/src/main/scala/play/routes/compiler/RoutesFileParser.scala index d923c2dc4..4f953e1fd 100644 --- a/dev-mode/routes-compiler/src/main/scala/play/routes/compiler/RoutesFileParser.scala +++ b/dev-mode/routes-compiler/src/main/scala/play/routes/compiler/RoutesFileParser.scala @@ -127,6 +127,8 @@ private[routes] class RoutesFileParser extends JavaTokenParsers: override def skipWhitespace = false override val whiteSpace = """[ \t]+""".r + case class ModifiersWithComment(modifiers: List[Modifier], comment: Option[Comment]) + def EOF: util.matching.Regex = "\\z".r def namedError[A](p: Parser[A], msg: String): Parser[A] = Parser[A] { i => @@ -169,8 +171,8 @@ private[routes] class RoutesFileParser extends JavaTokenParsers: Modifier.apply )) - def modifiersWithComment: Parser[(List[Modifier], Option[Comment])] = modifiers ~ opt(comment) ^^ { - case m ~ c => (m, c) + def modifiersWithComment: Parser[ModifiersWithComment] = modifiers ~ opt(comment) ^^ { case m ~ c => + ModifiersWithComment(m, c) } def newLine: Parser[String] = namedError(("\r" ?) ~> "\n", "End of line expected") @@ -325,7 +327,7 @@ private[routes] class RoutesFileParser extends JavaTokenParsers: case (s, c @ ()) => (None, Nil, Nil) :: s case ((r, comments, modifiers) :: others, c: Comment) => (r, c :: comments, modifiers) :: others - case ((r, comments, modifiers) :: others, (ms: List[Modifier], c: Option[Comment])) => + case ((r, comments, modifiers) :: others, ModifiersWithComment(ms, c)) => (r, c.toList ::: comments, ms ::: modifiers) :: others case (s, _) => s }