mirror of
https://github.com/dart-lang/sdk
synced 2024-10-06 16:19:07 +00:00
Extension type. Issue 53752. Update ToSourceVisitor.
Bug: https://github.com/dart-lang/sdk/issues/53752 Change-Id: I334bb2f01fcb9327c2a04f2252740501a3874fe7 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/330993 Commit-Queue: Konstantin Shcheglov <scheglov@google.com> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
This commit is contained in:
parent
6968295dfb
commit
e638793918
|
@ -465,6 +465,7 @@ class ToSourceVisitor implements AstVisitor<void> {
|
|||
_visitToken(node.name);
|
||||
_visitNode(node.typeParameters);
|
||||
_visitNode(node.representation, suffix: ' ');
|
||||
_visitNode(node.implementsClause, suffix: ' ');
|
||||
_visitToken(node.leftBracket);
|
||||
_visitNodeList(node.members, separator: ' ');
|
||||
_visitToken(node.rightBracket);
|
||||
|
@ -1167,6 +1168,7 @@ class ToSourceVisitor implements AstVisitor<void> {
|
|||
void visitRepresentationDeclaration(RepresentationDeclaration node) {
|
||||
_visitNode(node.constructorName);
|
||||
_visitToken(node.leftParenthesis);
|
||||
_visitNodeList(node.fieldMetadata, separator: ' ', suffix: ' ');
|
||||
_visitNode(node.fieldType, suffix: ' ');
|
||||
_visitToken(node.fieldName);
|
||||
_visitToken(node.rightParenthesis);
|
||||
|
|
|
@ -21,6 +21,14 @@ main() {
|
|||
|
||||
@reflectiveTest
|
||||
class ToSourceVisitorTest extends ParserDiagnosticsTest {
|
||||
void test_representationDeclaration() {
|
||||
final code = '(@foo int it)';
|
||||
final findNode = _parseStringToFindNode('''
|
||||
extension type E$code {}
|
||||
''');
|
||||
_assertSource(code, findNode.singleRepresentationDeclaration);
|
||||
}
|
||||
|
||||
void test_visitAdjacentStrings() {
|
||||
var findNode = _parseStringToFindNode(r'''
|
||||
var v = 'a' 'b';
|
||||
|
@ -1281,6 +1289,30 @@ $code
|
|||
// [AstTestFactory.identifier3('o')])));
|
||||
}
|
||||
|
||||
void test_visitExtensionType() {
|
||||
final code = 'extension type E(int it) {}';
|
||||
final findNode = _parseStringToFindNode('''
|
||||
$code
|
||||
''');
|
||||
_assertSource(code, findNode.singleExtensionTypeDeclaration);
|
||||
}
|
||||
|
||||
void test_visitExtensionType_implements() {
|
||||
final code = 'extension type E(int it) implements num {}';
|
||||
final findNode = _parseStringToFindNode('''
|
||||
$code
|
||||
''');
|
||||
_assertSource(code, findNode.singleExtensionTypeDeclaration);
|
||||
}
|
||||
|
||||
void test_visitExtensionType_method() {
|
||||
final code = 'extension type E(int it) {void foo() {}}';
|
||||
final findNode = _parseStringToFindNode('''
|
||||
$code
|
||||
''');
|
||||
_assertSource(code, findNode.singleExtensionTypeDeclaration);
|
||||
}
|
||||
|
||||
void test_visitFieldDeclaration_abstract() {
|
||||
final code = 'abstract var a;';
|
||||
final findNode = _parseStringToFindNode('''
|
||||
|
|
Loading…
Reference in a new issue