mirror of
https://github.com/dart-lang/sdk
synced 2024-10-06 13:08:01 +00:00
Replace ExtractorPattern.typeName/typeArguments with 'NamedType get type'.
Change-Id: Iaa19aef8f2cb8727879b0eea41c6f8220205f226 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/262501 Commit-Queue: Konstantin Shcheglov <scheglov@google.com> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
This commit is contained in:
parent
2cf13806b2
commit
2a43b37898
|
@ -2188,12 +2188,8 @@ abstract class ExtractorPattern implements DartPattern {
|
|||
/// Return the right parenthesis.
|
||||
Token get rightParenthesis;
|
||||
|
||||
/// Return the type arguments associated with this pattern, or `null` if no
|
||||
/// type arguments were declared.
|
||||
TypeArgumentList? get typeArguments;
|
||||
|
||||
/// The name of the type of object from which values will be extracted.
|
||||
Identifier get typeName;
|
||||
NamedType get type;
|
||||
}
|
||||
|
||||
/// The declaration of one or more fields of the same type.
|
||||
|
|
|
@ -4697,24 +4697,19 @@ class ExtractorPatternImpl extends DartPatternImpl implements ExtractorPattern {
|
|||
final Token rightParenthesis;
|
||||
|
||||
@override
|
||||
final TypeArgumentListImpl? typeArguments;
|
||||
|
||||
@override
|
||||
final IdentifierImpl typeName;
|
||||
final NamedTypeImpl type;
|
||||
|
||||
ExtractorPatternImpl(
|
||||
{required this.typeName,
|
||||
required this.typeArguments,
|
||||
{required this.type,
|
||||
required this.leftParenthesis,
|
||||
required List<RecordPatternField> fields,
|
||||
required this.rightParenthesis}) {
|
||||
_becomeParentOf(typeName);
|
||||
_becomeParentOf(typeArguments);
|
||||
_becomeParentOf(type);
|
||||
_fields._initialize(this, fields);
|
||||
}
|
||||
|
||||
@override
|
||||
Token get beginToken => typeName.beginToken;
|
||||
Token get beginToken => type.beginToken;
|
||||
|
||||
@override
|
||||
Token get endToken => rightParenthesis;
|
||||
|
@ -4724,8 +4719,7 @@ class ExtractorPatternImpl extends DartPatternImpl implements ExtractorPattern {
|
|||
|
||||
@override
|
||||
ChildEntities get _childEntities => super._childEntities
|
||||
..addNode('typeName', typeName)
|
||||
..addNode('typeArguments', typeArguments)
|
||||
..addNode('type', type)
|
||||
..addToken('leftParenthesis', leftParenthesis)
|
||||
..addNodeList('fields', fields)
|
||||
..addToken('rightParenthesis', rightParenthesis);
|
||||
|
@ -4748,8 +4742,7 @@ class ExtractorPatternImpl extends DartPatternImpl implements ExtractorPattern {
|
|||
|
||||
@override
|
||||
void visitChildren(AstVisitor visitor) {
|
||||
typeName.accept(visitor);
|
||||
typeArguments?.accept(visitor);
|
||||
type.accept(visitor);
|
||||
fields.accept(visitor);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -448,8 +448,7 @@ class ToSourceVisitor implements AstVisitor<void> {
|
|||
|
||||
@override
|
||||
void visitExtractorPattern(ExtractorPattern node) {
|
||||
_visitNode(node.typeName);
|
||||
_visitNode(node.typeArguments);
|
||||
_visitNode(node.type);
|
||||
sink.write('(');
|
||||
_visitNodeList(node.fields, separator: ', ');
|
||||
sink.write(')');
|
||||
|
|
|
@ -558,8 +558,7 @@ class AstComparator implements AstVisitor<bool> {
|
|||
@override
|
||||
bool visitExtractorPattern(ExtractorPattern node) {
|
||||
var other = _other as ExtractorPattern;
|
||||
return isEqualNodes(node.typeName, other.typeName) &&
|
||||
isEqualNodes(node.typeArguments, other.typeArguments) &&
|
||||
return isEqualNodes(node.type, other.type) &&
|
||||
isEqualTokens(node.leftParenthesis, other.leftParenthesis) &&
|
||||
_isEqualNodeLists(node.fields, other.fields) &&
|
||||
isEqualTokens(node.rightParenthesis, other.rightParenthesis);
|
||||
|
|
|
@ -3702,12 +3702,18 @@ class AstBuilder extends StackListener {
|
|||
? firstIdentifier
|
||||
: PrefixedIdentifierImpl(
|
||||
firstIdentifier, dot, SimpleIdentifierImpl(secondIdentifierToken!));
|
||||
push(ExtractorPatternImpl(
|
||||
typeName: typeName,
|
||||
typeArguments: typeArguments,
|
||||
push(
|
||||
ExtractorPatternImpl(
|
||||
type: NamedTypeImpl(
|
||||
name: typeName,
|
||||
typeArguments: typeArguments,
|
||||
question: null,
|
||||
),
|
||||
leftParenthesis: arguments.leftParenthesis,
|
||||
fields: arguments.fields,
|
||||
rightParenthesis: arguments.rightParenthesis));
|
||||
rightParenthesis: arguments.rightParenthesis,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
|
|
|
@ -59,8 +59,9 @@ void f(x) {
|
|||
var node = findNode.switchPatternCase('case').pattern;
|
||||
assertParsedNodeText(node, r'''
|
||||
ExtractorPattern
|
||||
typeName: SimpleIdentifier
|
||||
token: C
|
||||
type: NamedType
|
||||
name: SimpleIdentifier
|
||||
token: C
|
||||
leftParenthesis: (
|
||||
fields
|
||||
RecordPatternField
|
||||
|
@ -94,8 +95,9 @@ void f(x) {
|
|||
var node = findNode.switchPatternCase('case').pattern;
|
||||
assertParsedNodeText(node, r'''
|
||||
ExtractorPattern
|
||||
typeName: SimpleIdentifier
|
||||
token: C
|
||||
type: NamedType
|
||||
name: SimpleIdentifier
|
||||
token: C
|
||||
leftParenthesis: (
|
||||
fields
|
||||
RecordPatternField
|
||||
|
@ -2147,15 +2149,16 @@ void f(x) {
|
|||
var node = findNode.switchPatternCase('case').pattern;
|
||||
assertParsedNodeText(node, r'''
|
||||
ExtractorPattern
|
||||
typeName: SimpleIdentifier
|
||||
token: C
|
||||
typeArguments: TypeArgumentList
|
||||
leftBracket: <
|
||||
arguments
|
||||
NamedType
|
||||
name: SimpleIdentifier
|
||||
token: int
|
||||
rightBracket: >
|
||||
type: NamedType
|
||||
name: SimpleIdentifier
|
||||
token: C
|
||||
typeArguments: TypeArgumentList
|
||||
leftBracket: <
|
||||
arguments
|
||||
NamedType
|
||||
name: SimpleIdentifier
|
||||
token: int
|
||||
rightBracket: >
|
||||
leftParenthesis: (
|
||||
rightParenthesis: )
|
||||
''');
|
||||
|
@ -2175,19 +2178,20 @@ void f(x) {
|
|||
var node = findNode.switchPatternCase('case').pattern;
|
||||
assertParsedNodeText(node, r'''
|
||||
ExtractorPattern
|
||||
typeName: PrefixedIdentifier
|
||||
prefix: SimpleIdentifier
|
||||
token: async
|
||||
period: .
|
||||
identifier: SimpleIdentifier
|
||||
token: Future
|
||||
typeArguments: TypeArgumentList
|
||||
leftBracket: <
|
||||
arguments
|
||||
NamedType
|
||||
name: SimpleIdentifier
|
||||
token: int
|
||||
rightBracket: >
|
||||
type: NamedType
|
||||
name: PrefixedIdentifier
|
||||
prefix: SimpleIdentifier
|
||||
token: async
|
||||
period: .
|
||||
identifier: SimpleIdentifier
|
||||
token: Future
|
||||
typeArguments: TypeArgumentList
|
||||
leftBracket: <
|
||||
arguments
|
||||
NamedType
|
||||
name: SimpleIdentifier
|
||||
token: int
|
||||
rightBracket: >
|
||||
leftParenthesis: (
|
||||
rightParenthesis: )
|
||||
''');
|
||||
|
@ -2210,19 +2214,20 @@ SwitchPatternCase
|
|||
keyword: case
|
||||
pattern: CastPattern
|
||||
pattern: ExtractorPattern
|
||||
typeName: PrefixedIdentifier
|
||||
prefix: SimpleIdentifier
|
||||
token: async
|
||||
period: .
|
||||
identifier: SimpleIdentifier
|
||||
token: Future
|
||||
typeArguments: TypeArgumentList
|
||||
leftBracket: <
|
||||
arguments
|
||||
NamedType
|
||||
name: SimpleIdentifier
|
||||
token: int
|
||||
rightBracket: >
|
||||
type: NamedType
|
||||
name: PrefixedIdentifier
|
||||
prefix: SimpleIdentifier
|
||||
token: async
|
||||
period: .
|
||||
identifier: SimpleIdentifier
|
||||
token: Future
|
||||
typeArguments: TypeArgumentList
|
||||
leftBracket: <
|
||||
arguments
|
||||
NamedType
|
||||
name: SimpleIdentifier
|
||||
token: int
|
||||
rightBracket: >
|
||||
leftParenthesis: (
|
||||
rightParenthesis: )
|
||||
asToken: as
|
||||
|
@ -2252,19 +2257,20 @@ void f(x) {
|
|||
assertParsedNodeText(node, r'''
|
||||
PostfixPattern
|
||||
operand: ExtractorPattern
|
||||
typeName: PrefixedIdentifier
|
||||
prefix: SimpleIdentifier
|
||||
token: async
|
||||
period: .
|
||||
identifier: SimpleIdentifier
|
||||
token: Future
|
||||
typeArguments: TypeArgumentList
|
||||
leftBracket: <
|
||||
arguments
|
||||
NamedType
|
||||
name: SimpleIdentifier
|
||||
token: int
|
||||
rightBracket: >
|
||||
type: NamedType
|
||||
name: PrefixedIdentifier
|
||||
prefix: SimpleIdentifier
|
||||
token: async
|
||||
period: .
|
||||
identifier: SimpleIdentifier
|
||||
token: Future
|
||||
typeArguments: TypeArgumentList
|
||||
leftBracket: <
|
||||
arguments
|
||||
NamedType
|
||||
name: SimpleIdentifier
|
||||
token: int
|
||||
rightBracket: >
|
||||
leftParenthesis: (
|
||||
rightParenthesis: )
|
||||
operator: !
|
||||
|
@ -2286,19 +2292,20 @@ void f(x) {
|
|||
assertParsedNodeText(node, r'''
|
||||
PostfixPattern
|
||||
operand: ExtractorPattern
|
||||
typeName: PrefixedIdentifier
|
||||
prefix: SimpleIdentifier
|
||||
token: async
|
||||
period: .
|
||||
identifier: SimpleIdentifier
|
||||
token: Future
|
||||
typeArguments: TypeArgumentList
|
||||
leftBracket: <
|
||||
arguments
|
||||
NamedType
|
||||
name: SimpleIdentifier
|
||||
token: int
|
||||
rightBracket: >
|
||||
type: NamedType
|
||||
name: PrefixedIdentifier
|
||||
prefix: SimpleIdentifier
|
||||
token: async
|
||||
period: .
|
||||
identifier: SimpleIdentifier
|
||||
token: Future
|
||||
typeArguments: TypeArgumentList
|
||||
leftBracket: <
|
||||
arguments
|
||||
NamedType
|
||||
name: SimpleIdentifier
|
||||
token: int
|
||||
rightBracket: >
|
||||
leftParenthesis: (
|
||||
rightParenthesis: )
|
||||
operator: ?
|
||||
|
@ -2321,8 +2328,9 @@ void f(x) {
|
|||
assertParsedNodeText(node, r'''
|
||||
CastPattern
|
||||
pattern: ExtractorPattern
|
||||
typeName: SimpleIdentifier
|
||||
token: C
|
||||
type: NamedType
|
||||
name: SimpleIdentifier
|
||||
token: C
|
||||
leftParenthesis: (
|
||||
fields
|
||||
RecordPatternField
|
||||
|
@ -2356,8 +2364,9 @@ void f(x) {
|
|||
assertParsedNodeText(node, r'''
|
||||
PostfixPattern
|
||||
operand: ExtractorPattern
|
||||
typeName: SimpleIdentifier
|
||||
token: C
|
||||
type: NamedType
|
||||
name: SimpleIdentifier
|
||||
token: C
|
||||
leftParenthesis: (
|
||||
fields
|
||||
RecordPatternField
|
||||
|
@ -2388,8 +2397,9 @@ void f(x) {
|
|||
assertParsedNodeText(node, r'''
|
||||
PostfixPattern
|
||||
operand: ExtractorPattern
|
||||
typeName: SimpleIdentifier
|
||||
token: C
|
||||
type: NamedType
|
||||
name: SimpleIdentifier
|
||||
token: C
|
||||
leftParenthesis: (
|
||||
fields
|
||||
RecordPatternField
|
||||
|
@ -2420,15 +2430,16 @@ void f(x) {
|
|||
assertParsedNodeText(node, r'''
|
||||
PostfixPattern
|
||||
operand: ExtractorPattern
|
||||
typeName: SimpleIdentifier
|
||||
token: C
|
||||
typeArguments: TypeArgumentList
|
||||
leftBracket: <
|
||||
arguments
|
||||
NamedType
|
||||
name: SimpleIdentifier
|
||||
token: int
|
||||
rightBracket: >
|
||||
type: NamedType
|
||||
name: SimpleIdentifier
|
||||
token: C
|
||||
typeArguments: TypeArgumentList
|
||||
leftBracket: <
|
||||
arguments
|
||||
NamedType
|
||||
name: SimpleIdentifier
|
||||
token: int
|
||||
rightBracket: >
|
||||
leftParenthesis: (
|
||||
fields
|
||||
RecordPatternField
|
||||
|
@ -3477,8 +3488,9 @@ void f(x) {
|
|||
var node = findNode.switchPatternCase('case').pattern;
|
||||
assertParsedNodeText(node, r'''
|
||||
ExtractorPattern
|
||||
typeName: SimpleIdentifier
|
||||
token: C
|
||||
type: NamedType
|
||||
name: SimpleIdentifier
|
||||
token: C
|
||||
leftParenthesis: (
|
||||
fields
|
||||
RecordPatternField
|
||||
|
@ -3509,8 +3521,9 @@ void f(x) {
|
|||
var node = findNode.switchPatternCase('case').pattern;
|
||||
assertParsedNodeText(node, r'''
|
||||
ExtractorPattern
|
||||
typeName: SimpleIdentifier
|
||||
token: C
|
||||
type: NamedType
|
||||
name: SimpleIdentifier
|
||||
token: C
|
||||
leftParenthesis: (
|
||||
fields
|
||||
RecordPatternField
|
||||
|
@ -3835,8 +3848,9 @@ void f(x) {
|
|||
var node = findNode.switchPatternCase('case').pattern;
|
||||
assertParsedNodeText(node, r'''
|
||||
ExtractorPattern
|
||||
typeName: SimpleIdentifier
|
||||
token: C
|
||||
type: NamedType
|
||||
name: SimpleIdentifier
|
||||
token: C
|
||||
leftParenthesis: (
|
||||
fields
|
||||
RecordPatternField
|
||||
|
@ -3867,8 +3881,9 @@ void f(x) {
|
|||
var node = findNode.switchPatternCase('case').pattern;
|
||||
assertParsedNodeText(node, r'''
|
||||
ExtractorPattern
|
||||
typeName: SimpleIdentifier
|
||||
token: C
|
||||
type: NamedType
|
||||
name: SimpleIdentifier
|
||||
token: C
|
||||
leftParenthesis: (
|
||||
fields
|
||||
RecordPatternField
|
||||
|
@ -4526,8 +4541,9 @@ void f(x) {
|
|||
var node = findNode.switchPatternCase('case').pattern;
|
||||
assertParsedNodeText(node, r'''
|
||||
ExtractorPattern
|
||||
typeName: SimpleIdentifier
|
||||
token: C
|
||||
type: NamedType
|
||||
name: SimpleIdentifier
|
||||
token: C
|
||||
leftParenthesis: (
|
||||
fields
|
||||
RecordPatternField
|
||||
|
@ -5139,8 +5155,9 @@ void f(x) {
|
|||
var node = findNode.switchPatternCase('case').pattern;
|
||||
assertParsedNodeText(node, r'''
|
||||
ExtractorPattern
|
||||
typeName: SimpleIdentifier
|
||||
token: C
|
||||
type: NamedType
|
||||
name: SimpleIdentifier
|
||||
token: C
|
||||
leftParenthesis: (
|
||||
fields
|
||||
RecordPatternField
|
||||
|
@ -5171,8 +5188,9 @@ void f(x) {
|
|||
var node = findNode.switchPatternCase('case').pattern;
|
||||
assertParsedNodeText(node, r'''
|
||||
ExtractorPattern
|
||||
typeName: SimpleIdentifier
|
||||
token: C
|
||||
type: NamedType
|
||||
name: SimpleIdentifier
|
||||
token: C
|
||||
leftParenthesis: (
|
||||
fields
|
||||
RecordPatternField
|
||||
|
|
|
@ -30,8 +30,9 @@ void f(x) {
|
|||
final node = findNode.switchPatternCase('case').pattern;
|
||||
assertParsedNodeText(node, r'''
|
||||
ExtractorPattern
|
||||
typeName: SimpleIdentifier
|
||||
token: C
|
||||
type: NamedType
|
||||
name: SimpleIdentifier
|
||||
token: C
|
||||
leftParenthesis: (
|
||||
fields
|
||||
RecordPatternField
|
||||
|
@ -66,8 +67,9 @@ void f(x) {
|
|||
final node = findNode.switchPatternCase('case').pattern;
|
||||
assertParsedNodeText(node, r'''
|
||||
ExtractorPattern
|
||||
typeName: SimpleIdentifier
|
||||
token: C
|
||||
type: NamedType
|
||||
name: SimpleIdentifier
|
||||
token: C
|
||||
leftParenthesis: (
|
||||
fields
|
||||
RecordPatternField
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
// for details. All rights reserved. Use of this source code is governed by a
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
import 'package:analyzer/src/error/codes.dart';
|
||||
import 'package:test_reflective_loader/test_reflective_loader.dart';
|
||||
|
||||
import 'context_collection_resolution.dart';
|
||||
|
@ -32,8 +31,9 @@ void f(x) {
|
|||
assertParsedNodeText(node, r'''
|
||||
CastPattern
|
||||
pattern: ExtractorPattern
|
||||
typeName: SimpleIdentifier
|
||||
token: C
|
||||
type: NamedType
|
||||
name: SimpleIdentifier
|
||||
token: C
|
||||
leftParenthesis: (
|
||||
fields
|
||||
RecordPatternField
|
||||
|
@ -68,8 +68,9 @@ void f(x) {
|
|||
assertParsedNodeText(node, r'''
|
||||
PostfixPattern
|
||||
operand: ExtractorPattern
|
||||
typeName: SimpleIdentifier
|
||||
token: C
|
||||
type: NamedType
|
||||
name: SimpleIdentifier
|
||||
token: C
|
||||
leftParenthesis: (
|
||||
fields
|
||||
RecordPatternField
|
||||
|
@ -101,8 +102,9 @@ void f(x) {
|
|||
assertParsedNodeText(node, r'''
|
||||
PostfixPattern
|
||||
operand: ExtractorPattern
|
||||
typeName: SimpleIdentifier
|
||||
token: C
|
||||
type: NamedType
|
||||
name: SimpleIdentifier
|
||||
token: C
|
||||
leftParenthesis: (
|
||||
fields
|
||||
RecordPatternField
|
||||
|
@ -131,15 +133,16 @@ void f(x) {
|
|||
final node = findNode.switchPatternCase('case').pattern;
|
||||
assertParsedNodeText(node, r'''
|
||||
ExtractorPattern
|
||||
typeName: SimpleIdentifier
|
||||
token: C
|
||||
typeArguments: TypeArgumentList
|
||||
leftBracket: <
|
||||
arguments
|
||||
NamedType
|
||||
name: SimpleIdentifier
|
||||
token: int
|
||||
rightBracket: >
|
||||
type: NamedType
|
||||
name: SimpleIdentifier
|
||||
token: C
|
||||
typeArguments: TypeArgumentList
|
||||
leftBracket: <
|
||||
arguments
|
||||
NamedType
|
||||
name: SimpleIdentifier
|
||||
token: int
|
||||
rightBracket: >
|
||||
leftParenthesis: (
|
||||
rightParenthesis: )
|
||||
''');
|
||||
|
@ -160,15 +163,16 @@ void f(x) {
|
|||
assertParsedNodeText(node, r'''
|
||||
PostfixPattern
|
||||
operand: ExtractorPattern
|
||||
typeName: SimpleIdentifier
|
||||
token: C
|
||||
typeArguments: TypeArgumentList
|
||||
leftBracket: <
|
||||
arguments
|
||||
NamedType
|
||||
name: SimpleIdentifier
|
||||
token: int
|
||||
rightBracket: >
|
||||
type: NamedType
|
||||
name: SimpleIdentifier
|
||||
token: C
|
||||
typeArguments: TypeArgumentList
|
||||
leftBracket: <
|
||||
arguments
|
||||
NamedType
|
||||
name: SimpleIdentifier
|
||||
token: int
|
||||
rightBracket: >
|
||||
leftParenthesis: (
|
||||
rightParenthesis: )
|
||||
operator: !
|
||||
|
@ -190,15 +194,16 @@ void f(x) {
|
|||
assertParsedNodeText(node, r'''
|
||||
PostfixPattern
|
||||
operand: ExtractorPattern
|
||||
typeName: SimpleIdentifier
|
||||
token: C
|
||||
typeArguments: TypeArgumentList
|
||||
leftBracket: <
|
||||
arguments
|
||||
NamedType
|
||||
name: SimpleIdentifier
|
||||
token: int
|
||||
rightBracket: >
|
||||
type: NamedType
|
||||
name: SimpleIdentifier
|
||||
token: C
|
||||
typeArguments: TypeArgumentList
|
||||
leftBracket: <
|
||||
arguments
|
||||
NamedType
|
||||
name: SimpleIdentifier
|
||||
token: int
|
||||
rightBracket: >
|
||||
leftParenthesis: (
|
||||
rightParenthesis: )
|
||||
operator: ?
|
||||
|
@ -212,7 +217,7 @@ class C {
|
|||
}
|
||||
''');
|
||||
|
||||
await assertErrorsInCode(r'''
|
||||
await assertNoErrorsInCode(r'''
|
||||
import 'a.dart' as prefix;
|
||||
|
||||
void f(x) {
|
||||
|
@ -221,20 +226,19 @@ void f(x) {
|
|||
break;
|
||||
}
|
||||
}
|
||||
''', [
|
||||
error(HintCode.UNUSED_IMPORT, 7, 8),
|
||||
]);
|
||||
''');
|
||||
|
||||
final node = findNode.switchPatternCase('case').pattern;
|
||||
assertParsedNodeText(node, r'''
|
||||
CastPattern
|
||||
pattern: ExtractorPattern
|
||||
typeName: PrefixedIdentifier
|
||||
prefix: SimpleIdentifier
|
||||
token: prefix
|
||||
period: .
|
||||
identifier: SimpleIdentifier
|
||||
token: C
|
||||
type: NamedType
|
||||
name: PrefixedIdentifier
|
||||
prefix: SimpleIdentifier
|
||||
token: prefix
|
||||
period: .
|
||||
identifier: SimpleIdentifier
|
||||
token: C
|
||||
leftParenthesis: (
|
||||
fields
|
||||
RecordPatternField
|
||||
|
@ -259,7 +263,7 @@ class C {
|
|||
}
|
||||
''');
|
||||
|
||||
await assertErrorsInCode(r'''
|
||||
await assertNoErrorsInCode(r'''
|
||||
import 'a.dart' as prefix;
|
||||
|
||||
void f(x) {
|
||||
|
@ -268,20 +272,19 @@ void f(x) {
|
|||
break;
|
||||
}
|
||||
}
|
||||
''', [
|
||||
error(HintCode.UNUSED_IMPORT, 7, 8),
|
||||
]);
|
||||
''');
|
||||
|
||||
final node = findNode.switchPatternCase('case').pattern;
|
||||
assertParsedNodeText(node, r'''
|
||||
PostfixPattern
|
||||
operand: ExtractorPattern
|
||||
typeName: PrefixedIdentifier
|
||||
prefix: SimpleIdentifier
|
||||
token: prefix
|
||||
period: .
|
||||
identifier: SimpleIdentifier
|
||||
token: C
|
||||
type: NamedType
|
||||
name: PrefixedIdentifier
|
||||
prefix: SimpleIdentifier
|
||||
token: prefix
|
||||
period: .
|
||||
identifier: SimpleIdentifier
|
||||
token: C
|
||||
leftParenthesis: (
|
||||
fields
|
||||
RecordPatternField
|
||||
|
@ -303,7 +306,7 @@ class C {
|
|||
}
|
||||
''');
|
||||
|
||||
await assertErrorsInCode(r'''
|
||||
await assertNoErrorsInCode(r'''
|
||||
import 'a.dart' as prefix;
|
||||
|
||||
void f(x) {
|
||||
|
@ -312,20 +315,19 @@ void f(x) {
|
|||
break;
|
||||
}
|
||||
}
|
||||
''', [
|
||||
error(HintCode.UNUSED_IMPORT, 7, 8),
|
||||
]);
|
||||
''');
|
||||
|
||||
final node = findNode.switchPatternCase('case').pattern;
|
||||
assertParsedNodeText(node, r'''
|
||||
PostfixPattern
|
||||
operand: ExtractorPattern
|
||||
typeName: PrefixedIdentifier
|
||||
prefix: SimpleIdentifier
|
||||
token: prefix
|
||||
period: .
|
||||
identifier: SimpleIdentifier
|
||||
token: C
|
||||
type: NamedType
|
||||
name: PrefixedIdentifier
|
||||
prefix: SimpleIdentifier
|
||||
token: prefix
|
||||
period: .
|
||||
identifier: SimpleIdentifier
|
||||
token: C
|
||||
leftParenthesis: (
|
||||
fields
|
||||
RecordPatternField
|
||||
|
@ -345,7 +347,7 @@ PostfixPattern
|
|||
class C<T> {}
|
||||
''');
|
||||
|
||||
await assertErrorsInCode(r'''
|
||||
await assertNoErrorsInCode(r'''
|
||||
import 'a.dart' as prefix;
|
||||
|
||||
void f(x) {
|
||||
|
@ -354,54 +356,13 @@ void f(x) {
|
|||
break;
|
||||
}
|
||||
}
|
||||
''', [
|
||||
error(HintCode.UNUSED_IMPORT, 7, 8),
|
||||
]);
|
||||
''');
|
||||
|
||||
final node = findNode.switchPatternCase('case').pattern;
|
||||
assertParsedNodeText(node, r'''
|
||||
ExtractorPattern
|
||||
typeName: PrefixedIdentifier
|
||||
prefix: SimpleIdentifier
|
||||
token: prefix
|
||||
period: .
|
||||
identifier: SimpleIdentifier
|
||||
token: C
|
||||
typeArguments: TypeArgumentList
|
||||
leftBracket: <
|
||||
arguments
|
||||
NamedType
|
||||
name: SimpleIdentifier
|
||||
token: int
|
||||
rightBracket: >
|
||||
leftParenthesis: (
|
||||
rightParenthesis: )
|
||||
''');
|
||||
}
|
||||
|
||||
test_prefixedIdentifier_withTypeArguments_inside_nullAssert() async {
|
||||
newFile('$testPackageLibPath/a.dart', r'''
|
||||
class C<T> {}
|
||||
''');
|
||||
|
||||
await assertErrorsInCode(r'''
|
||||
import 'a.dart' as prefix;
|
||||
|
||||
void f(x) {
|
||||
switch (x) {
|
||||
case prefix.C<int>()!:
|
||||
break;
|
||||
}
|
||||
}
|
||||
''', [
|
||||
error(HintCode.UNUSED_IMPORT, 7, 8),
|
||||
]);
|
||||
|
||||
final node = findNode.switchPatternCase('case').pattern;
|
||||
assertParsedNodeText(node, r'''
|
||||
PostfixPattern
|
||||
operand: ExtractorPattern
|
||||
typeName: PrefixedIdentifier
|
||||
type: NamedType
|
||||
name: PrefixedIdentifier
|
||||
prefix: SimpleIdentifier
|
||||
token: prefix
|
||||
period: .
|
||||
|
@ -414,6 +375,45 @@ PostfixPattern
|
|||
name: SimpleIdentifier
|
||||
token: int
|
||||
rightBracket: >
|
||||
leftParenthesis: (
|
||||
rightParenthesis: )
|
||||
''');
|
||||
}
|
||||
|
||||
test_prefixedIdentifier_withTypeArguments_inside_nullAssert() async {
|
||||
newFile('$testPackageLibPath/a.dart', r'''
|
||||
class C<T> {}
|
||||
''');
|
||||
|
||||
await assertNoErrorsInCode(r'''
|
||||
import 'a.dart' as prefix;
|
||||
|
||||
void f(x) {
|
||||
switch (x) {
|
||||
case prefix.C<int>()!:
|
||||
break;
|
||||
}
|
||||
}
|
||||
''');
|
||||
|
||||
final node = findNode.switchPatternCase('case').pattern;
|
||||
assertParsedNodeText(node, r'''
|
||||
PostfixPattern
|
||||
operand: ExtractorPattern
|
||||
type: NamedType
|
||||
name: PrefixedIdentifier
|
||||
prefix: SimpleIdentifier
|
||||
token: prefix
|
||||
period: .
|
||||
identifier: SimpleIdentifier
|
||||
token: C
|
||||
typeArguments: TypeArgumentList
|
||||
leftBracket: <
|
||||
arguments
|
||||
NamedType
|
||||
name: SimpleIdentifier
|
||||
token: int
|
||||
rightBracket: >
|
||||
leftParenthesis: (
|
||||
rightParenthesis: )
|
||||
operator: !
|
||||
|
@ -425,7 +425,7 @@ PostfixPattern
|
|||
class C<T> {}
|
||||
''');
|
||||
|
||||
await assertErrorsInCode(r'''
|
||||
await assertNoErrorsInCode(r'''
|
||||
import 'a.dart' as prefix;
|
||||
|
||||
void f(x) {
|
||||
|
@ -434,27 +434,26 @@ void f(x) {
|
|||
break;
|
||||
}
|
||||
}
|
||||
''', [
|
||||
error(HintCode.UNUSED_IMPORT, 7, 8),
|
||||
]);
|
||||
''');
|
||||
|
||||
final node = findNode.switchPatternCase('case').pattern;
|
||||
assertParsedNodeText(node, r'''
|
||||
PostfixPattern
|
||||
operand: ExtractorPattern
|
||||
typeName: PrefixedIdentifier
|
||||
prefix: SimpleIdentifier
|
||||
token: prefix
|
||||
period: .
|
||||
identifier: SimpleIdentifier
|
||||
token: C
|
||||
typeArguments: TypeArgumentList
|
||||
leftBracket: <
|
||||
arguments
|
||||
NamedType
|
||||
name: SimpleIdentifier
|
||||
token: int
|
||||
rightBracket: >
|
||||
type: NamedType
|
||||
name: PrefixedIdentifier
|
||||
prefix: SimpleIdentifier
|
||||
token: prefix
|
||||
period: .
|
||||
identifier: SimpleIdentifier
|
||||
token: C
|
||||
typeArguments: TypeArgumentList
|
||||
leftBracket: <
|
||||
arguments
|
||||
NamedType
|
||||
name: SimpleIdentifier
|
||||
token: int
|
||||
rightBracket: >
|
||||
leftParenthesis: (
|
||||
rightParenthesis: )
|
||||
operator: ?
|
||||
|
|
|
@ -15,6 +15,7 @@ class NodeTextExpectationsCollector {
|
|||
'ContextResolutionTest.assertDriverStateString',
|
||||
'FileResolutionTest.assertStateString',
|
||||
'ParserDiagnosticsTest.assertParsedNodeText',
|
||||
'ResolutionTest.assertParsedNodeText',
|
||||
'ResolutionTest.assertResolvedNodeText',
|
||||
};
|
||||
|
||||
|
|
|
@ -31,8 +31,9 @@ void f(x) {
|
|||
final node = findNode.switchPatternCase('case').pattern;
|
||||
assertParsedNodeText(node, r'''
|
||||
ExtractorPattern
|
||||
typeName: SimpleIdentifier
|
||||
token: C
|
||||
type: NamedType
|
||||
name: SimpleIdentifier
|
||||
token: C
|
||||
leftParenthesis: (
|
||||
fields
|
||||
RecordPatternField
|
||||
|
@ -64,8 +65,9 @@ void f(x) {
|
|||
final node = findNode.switchPatternCase('case').pattern;
|
||||
assertParsedNodeText(node, r'''
|
||||
ExtractorPattern
|
||||
typeName: SimpleIdentifier
|
||||
token: C
|
||||
type: NamedType
|
||||
name: SimpleIdentifier
|
||||
token: C
|
||||
leftParenthesis: (
|
||||
fields
|
||||
RecordPatternField
|
||||
|
@ -404,8 +406,9 @@ void f(x) {
|
|||
final node = findNode.switchPatternCase('case').pattern;
|
||||
assertParsedNodeText(node, r'''
|
||||
ExtractorPattern
|
||||
typeName: SimpleIdentifier
|
||||
token: C
|
||||
type: NamedType
|
||||
name: SimpleIdentifier
|
||||
token: C
|
||||
leftParenthesis: (
|
||||
fields
|
||||
RecordPatternField
|
||||
|
@ -437,8 +440,9 @@ void f(x) {
|
|||
final node = findNode.switchPatternCase('case').pattern;
|
||||
assertParsedNodeText(node, r'''
|
||||
ExtractorPattern
|
||||
typeName: SimpleIdentifier
|
||||
token: C
|
||||
type: NamedType
|
||||
name: SimpleIdentifier
|
||||
token: C
|
||||
leftParenthesis: (
|
||||
fields
|
||||
RecordPatternField
|
||||
|
|
|
@ -96,8 +96,9 @@ void f(x) {
|
|||
final node = findNode.switchPatternCase('case').pattern;
|
||||
assertParsedNodeText(node, r'''
|
||||
ExtractorPattern
|
||||
typeName: SimpleIdentifier
|
||||
token: C
|
||||
type: NamedType
|
||||
name: SimpleIdentifier
|
||||
token: C
|
||||
leftParenthesis: (
|
||||
fields
|
||||
RecordPatternField
|
||||
|
|
|
@ -430,8 +430,9 @@ void f(x) {
|
|||
final node = findNode.switchPatternCase('case').pattern;
|
||||
assertParsedNodeText(node, r'''
|
||||
ExtractorPattern
|
||||
typeName: SimpleIdentifier
|
||||
token: C
|
||||
type: NamedType
|
||||
name: SimpleIdentifier
|
||||
token: C
|
||||
leftParenthesis: (
|
||||
fields
|
||||
RecordPatternField
|
||||
|
@ -463,8 +464,9 @@ void f(x) {
|
|||
final node = findNode.switchPatternCase('case').pattern;
|
||||
assertParsedNodeText(node, r'''
|
||||
ExtractorPattern
|
||||
typeName: SimpleIdentifier
|
||||
token: C
|
||||
type: NamedType
|
||||
name: SimpleIdentifier
|
||||
token: C
|
||||
leftParenthesis: (
|
||||
fields
|
||||
RecordPatternField
|
||||
|
|
Loading…
Reference in a new issue