<NME> TypeAliasDecl.txt
<BEF> Elm File
  ElmTypeAliasDeclaration(TYPE_ALIAS_DECLARATION)
    PsiElement(TYPE)('type')
    PsiWhiteSpace(' ')
    PsiElement(ALIAS)('alias')
    PsiWhiteSpace(' ')
    PsiElement(UPPER_CASE_IDENTIFIER)('Blah')
    PsiErrorElement:EQ or LOWER_CASE_IDENTIFIER expected, got '['
      <empty list>
  PsiWhiteSpace(' ')
  PsiElement(LEFT_SQUARE_BRACKET)('[')
  PsiElement(LOWER_CASE_IDENTIFIER)('garbage')
  PsiElement(RIGHT_SQUARE_BRACKET)(']')
  PsiElement(VIRTUAL_END_DECL)('\n')
  PsiWhiteSpace('\n')
  ElmTypeAliasDeclaration(TYPE_ALIAS_DECLARATION)
    PsiElement(TYPE)('type')
    PsiWhiteSpace(' ')
    PsiElement(ALIAS)('alias')
    PsiWhiteSpace(' ')
    PsiElement(UPPER_CASE_IDENTIFIER)('Blah')
    PsiWhiteSpace(' ')
    PsiElement(EQ)('=')
    PsiErrorElement:<type expression> expected, got 'if'
      <empty list>
  PsiWhiteSpace(' ')
  PsiElement(IF)('if')
  PsiWhiteSpace(' ')
  PsiElement(NUMBER_LITERAL)('0')
  PsiWhiteSpace(' ')
  PsiElement(THEN)('then')
  PsiWhiteSpace(' ')
  PsiElement(NUMBER_LITERAL)('1')
  PsiWhiteSpace(' ')
  PsiElement(ELSE)('else')
  PsiWhiteSpace(' ')
  PsiElement(NUMBER_LITERAL)('2')
  PsiElement(VIRTUAL_END_DECL)('\n')
  PsiWhiteSpace('\n')
  ElmTypeAliasDeclaration(TYPE_ALIAS_DECLARATION)
    PsiElement(TYPE)('type')
    PsiWhiteSpace(' ')
    PsiElement(ALIAS)('alias')
    PsiWhiteSpace(' ')
    PsiElement(UPPER_CASE_IDENTIFIER)('Blah')
    PsiWhiteSpace(' ')
    PsiElement(EQ)('=')
    PsiWhiteSpace(' ')
    ElmTypeExpression(TYPE_EXPRESSION)
      ElmTypeRef(TYPE_REF)
        ElmUpperCaseQID(UPPER_CASE_QID)
          PsiElement(UPPER_CASE_IDENTIFIER)('String')
  PsiWhiteSpace(' ')
  PsiElement(LEFT_BRACE)('{')
  PsiWhiteSpace(' ')
  PsiElement(LOWER_CASE_IDENTIFIER)('garbage')
  PsiWhiteSpace(' ')
  PsiErrorElement:COLON or PIPE expected, got '}'
    PsiElement(RIGHT_BRACE)('}')

<MSG> Improved parse error recovery for lists and records (#35)


<DFF> @@ -51,9 +51,5 @@ Elm File
         ElmUpperCaseQID(UPPER_CASE_QID)
           PsiElement(UPPER_CASE_IDENTIFIER)('String')
   PsiWhiteSpace(' ')
-  PsiElement(LEFT_BRACE)('{')
-  PsiWhiteSpace(' ')
-  PsiElement(LOWER_CASE_IDENTIFIER)('garbage')
-  PsiWhiteSpace(' ')
-  PsiErrorElement:COLON or PIPE expected, got '}'
-    PsiElement(RIGHT_BRACE)('}')
\ No newline at end of file
+  PsiErrorElement:ARROW, LEFT_BRACE, LEFT_PARENTHESIS, LOWER_CASE_IDENTIFIER or UPPER_CASE_IDENTIFIER expected, got '42'
+    PsiElement(NUMBER_LITERAL)('42')
\ No newline at end of file

Improved parse error recovery for lists and records (#35)