Skip to content

Commit 2311d0c

Browse files
committed
Merge pull request #47 from guersam/tmp/fix-44-FQN-type-parameter
Fix #44 allow qualified type parameter in patterns
2 parents c224ef4 + 1f3750b commit 2311d0c

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

scalariform/src/main/scala/com/danieltrinh/scalariform/parser/ScalaParser.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -949,7 +949,7 @@ class ScalaParser(tokens: Array[Token]) {
949949
val uscore = nextToken()
950950
val wildcardTypeOpt = if (SUBTYPE || SUPERTYPE) Some(wildcardType()) else None
951951
typeElementFlatten3(uscore, wildcardTypeOpt)
952-
case _ if isIdent && isVariableName(currentToken.text)
952+
case _ if isIdent && isVariableName(currentToken.text) && !(Set(DOT, HASH) contains lookahead(1))
953953
typeElementFlatten3(ident())
954954
case _
955955
List(typ())

scalariform/src/test/scala/com/danieltrinh/scalariform/parser/ParserTest.scala

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,16 @@ class ParserTest extends FlatSpec with ShouldMatchers {
4141
evaluating { parseCompilationUnit("package a {} package b {}") } should produce[ScalaParserException]
4242
}
4343

44+
// issue #44
45+
"Parser" should "allow qualified type parameter in pattern matching" in {
46+
parseExpression("""
47+
{
48+
case List[scala.Int]() => 1
49+
case _: List[scala.Int] => 2
50+
}
51+
""")
52+
}
53+
4454
private def parser(s: String) = new ScalaParser(ScalaLexer.tokenise(s).toArray)
4555
private def parseExpression(s: String) = parser(s).expr
4656
private def parseCompilationUnit(s: String) = parser(s).compilationUnit

0 commit comments

Comments
 (0)