| Index: pkg/analyzer/lib/src/dart/ast/utilities.dart
|
| diff --git a/pkg/analyzer/lib/src/dart/ast/utilities.dart b/pkg/analyzer/lib/src/dart/ast/utilities.dart
|
| index b2e25cf2f9878e58def1933f4a72fba3f9300848..3628346d3d8b61cf7ac548fc3436349f903effef 100644
|
| --- a/pkg/analyzer/lib/src/dart/ast/utilities.dart
|
| +++ b/pkg/analyzer/lib/src/dart/ast/utilities.dart
|
| @@ -60,22 +60,23 @@ class AstCloner implements AstVisitor<AstNode> {
|
| /**
|
| * Return a clone of the given [node].
|
| */
|
| - AstNode cloneNode(AstNode node) {
|
| + AstNode/*=E*/ cloneNode/*<E extends AstNode>*/(AstNode/*=E*/ node) {
|
| if (node == null) {
|
| return null;
|
| }
|
| - return node.accept(this) as AstNode;
|
| + return node.accept(this) as AstNode/*=E*/;
|
| }
|
|
|
| /**
|
| * Return a list containing cloned versions of the nodes in the given list of
|
| * [nodes].
|
| */
|
| - List<AstNode> cloneNodeList(NodeList nodes) {
|
| + List<AstNode/*=E*/ > cloneNodeList/*<E extends AstNode>*/(
|
| + NodeList/*<E>*/ nodes) {
|
| int count = nodes.length;
|
| - List clonedNodes = new List();
|
| + List/*<E>*/ clonedNodes = new List/*<E>*/();
|
| for (int i = 0; i < count; i++) {
|
| - clonedNodes.add((nodes[i]).accept(this) as AstNode);
|
| + clonedNodes.add((nodes[i]).accept(this) as AstNode/*=E*/);
|
| }
|
| return clonedNodes;
|
| }
|
| @@ -3614,19 +3615,19 @@ class IncrementalAstCloner implements AstVisitor<AstNode> {
|
| _cloneNode(node.expression),
|
| _mapToken(node.semicolon));
|
|
|
| - AstNode _cloneNode(AstNode node) {
|
| + AstNode/*=E*/ _cloneNode/*<E extends AstNode>*/(AstNode/*=E*/ node) {
|
| if (node == null) {
|
| return null;
|
| }
|
| if (identical(node, _oldNode)) {
|
| - return _newNode;
|
| + return _newNode as AstNode/*=E*/;
|
| }
|
| - return node.accept(this) as AstNode;
|
| + return node.accept(this) as AstNode/*=E*/;
|
| }
|
|
|
| - List _cloneNodeList(NodeList nodes) {
|
| - List clonedNodes = new List();
|
| - for (AstNode node in nodes) {
|
| + List/*<E>*/ _cloneNodeList/*<E extends AstNode>*/(NodeList/*<E>*/ nodes) {
|
| + List/*<E>*/ clonedNodes = new List/*<E>*/();
|
| + for (AstNode/*=E*/ node in nodes) {
|
| clonedNodes.add(_cloneNode(node));
|
| }
|
| return clonedNodes;
|
|
|