git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Added parsing check for wildcard type when parsing row endings.
f768545RossMeikleham
examples/passing/TypeWildcardsRecordExtension.pursnew file+6
@@ -0,0 +1,6 @@
1+module Main where
2+
3+foo :: forall a. {b :: Number | a} -> {b :: Number | _}
4+foo f = f
5+
6+main = Debug.Trace.trace "Done"
src/Language/PureScript/Parser/Types.hs+3−1
@@ -126,7 +126,9 @@ parseNameAndType :: TokenParser t -> TokenParser (String, t)
126parseNameAndType p = (,) <$> (indented *> (lname <|> stringLiteral) <* indented <* doubleColon) <*> p
126parseNameAndType p = (,) <$> (indented *> (lname <|> stringLiteral) <* indented <* doubleColon) <*> p
127
127
128parseRowEnding :: TokenParser Type
128parseRowEnding :: TokenParser Type
129−parseRowEnding = P.option REmpty (TypeVar <$> (indented *> pipe *> indented *> identifier))
129+parseRowEnding = P.option REmpty $ indented *> pipe *> indented *> P.choice (map P.try
130+ [ parseTypeWildcard
131+ , TypeVar <$> identifier ])
130
132
131parseRow :: TokenParser Type
133parseRow :: TokenParser Type
132parseRow = (curry rowFromList <$> commaSep (parseNameAndType parsePolyType) <*> parseRowEnding) P.<?> "row"
134parseRow = (curry rowFromList <$> commaSep (parseNameAndType parsePolyType) <*> parseRowEnding) P.<?> "row"