126c5fa680
This CL adds parser support for use of `<typeArguments>` as a selector. This allows expressions like `List<int>` (type literal with type arguments), `f<int>` (function tear-off with type arguments), `C.m<int>` (static method tear-off with type arguments), `EXPR.m<int>` (instance method tear-off with type arguments), and `EXPR<int>` (tear-off of `.call` method with type arguments). I will add parser support for `.new` as a constructor name in a follow-up CL. Change-Id: I157e732276421e8c3fd20c38c67ae9643993bd85 Bug: https://github.com/dart-lang/sdk/issues/46020, https://github.com/dart-lang/sdk/issues/46044. Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/197102 Commit-Queue: Paul Berry <paulberry@google.com> Reviewed-by: Konstantin Shcheglov <scheglov@google.com> Reviewed-by: Johnni Winther <johnniwinther@google.com> Reviewed-by: Jens Johansen <jensj@google.com>
116 lines
3.9 KiB
Plaintext
116 lines
3.9 KiB
Plaintext
beginCompilationUnit(var)
|
|
beginMetadataStar(var)
|
|
endMetadataStar(0)
|
|
beginTopLevelMember(var)
|
|
beginFields()
|
|
handleNoType(var)
|
|
handleIdentifier(simpleIdentifier, topLevelVariableDeclaration)
|
|
beginFieldInitializer(=)
|
|
handleIdentifier(f, expression)
|
|
handleNoTypeArguments(<)
|
|
handleNoArguments(<)
|
|
handleSend(f, <)
|
|
beginTypeArguments(<)
|
|
handleIdentifier(a, typeReference)
|
|
handleNoTypeArguments(,)
|
|
handleType(a, null)
|
|
handleIdentifier(b, typeReference)
|
|
handleNoTypeArguments(>)
|
|
handleType(b, null)
|
|
endTypeArguments(2, <, >)
|
|
handleTypeArgumentApplication(<)
|
|
endFieldInitializer(=, ;)
|
|
endTopLevelFields(null, null, null, null, var, 1, var, ;)
|
|
endTopLevelDeclaration(var)
|
|
beginMetadataStar(var)
|
|
endMetadataStar(0)
|
|
beginTopLevelMember(var)
|
|
beginFields(;)
|
|
handleNoType(var)
|
|
handleIdentifier(method, topLevelVariableDeclaration)
|
|
beginFieldInitializer(=)
|
|
handleIdentifier(f, expression)
|
|
handleNoTypeArguments(()
|
|
beginArguments(()
|
|
endArguments(0, (, ))
|
|
handleSend(f, .)
|
|
handleIdentifier(m, expressionContinuation)
|
|
handleNoTypeArguments(<)
|
|
handleNoArguments(<)
|
|
handleSend(m, <)
|
|
handleEndingBinaryExpression(.)
|
|
beginTypeArguments(<)
|
|
handleIdentifier(a, typeReference)
|
|
handleNoTypeArguments(,)
|
|
handleType(a, null)
|
|
handleIdentifier(b, typeReference)
|
|
handleNoTypeArguments(>)
|
|
handleType(b, null)
|
|
endTypeArguments(2, <, >)
|
|
handleTypeArgumentApplication(<)
|
|
endFieldInitializer(=, ;)
|
|
endTopLevelFields(null, null, null, null, var, 1, var, ;)
|
|
endTopLevelDeclaration(var)
|
|
beginMetadataStar(var)
|
|
endMetadataStar(0)
|
|
beginTopLevelMember(var)
|
|
beginFields(;)
|
|
handleNoType(var)
|
|
handleIdentifier(prefixedIdentifier, topLevelVariableDeclaration)
|
|
beginFieldInitializer(=)
|
|
handleIdentifier(prefix, expression)
|
|
handleNoTypeArguments(.)
|
|
handleNoArguments(.)
|
|
handleSend(prefix, .)
|
|
handleIdentifier(f, expressionContinuation)
|
|
handleNoTypeArguments(<)
|
|
handleNoArguments(<)
|
|
handleSend(f, <)
|
|
handleEndingBinaryExpression(.)
|
|
beginTypeArguments(<)
|
|
handleIdentifier(a, typeReference)
|
|
handleNoTypeArguments(,)
|
|
handleType(a, null)
|
|
handleIdentifier(b, typeReference)
|
|
handleNoTypeArguments(>)
|
|
handleType(b, null)
|
|
endTypeArguments(2, <, >)
|
|
handleTypeArgumentApplication(<)
|
|
endFieldInitializer(=, ;)
|
|
endTopLevelFields(null, null, null, null, var, 1, var, ;)
|
|
endTopLevelDeclaration(var)
|
|
beginMetadataStar(var)
|
|
endMetadataStar(0)
|
|
beginTopLevelMember(var)
|
|
beginFields(;)
|
|
handleNoType(var)
|
|
handleIdentifier(three_identifiers, topLevelVariableDeclaration)
|
|
beginFieldInitializer(=)
|
|
handleIdentifier(prefix, expression)
|
|
handleNoTypeArguments(.)
|
|
handleNoArguments(.)
|
|
handleSend(prefix, .)
|
|
handleIdentifier(ClassName, expressionContinuation)
|
|
handleNoTypeArguments(.)
|
|
handleNoArguments(.)
|
|
handleSend(ClassName, .)
|
|
handleEndingBinaryExpression(.)
|
|
handleIdentifier(m, expressionContinuation)
|
|
handleNoTypeArguments(<)
|
|
handleNoArguments(<)
|
|
handleSend(m, <)
|
|
handleEndingBinaryExpression(.)
|
|
beginTypeArguments(<)
|
|
handleIdentifier(a, typeReference)
|
|
handleNoTypeArguments(,)
|
|
handleType(a, null)
|
|
handleIdentifier(b, typeReference)
|
|
handleNoTypeArguments(>)
|
|
handleType(b, null)
|
|
endTypeArguments(2, <, >)
|
|
handleTypeArgumentApplication(<)
|
|
endFieldInitializer(=, ;)
|
|
endTopLevelFields(null, null, null, null, var, 1, var, ;)
|
|
endTopLevelDeclaration()
|
|
endCompilationUnit(4, )
|