Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(59)

Side by Side Diff: editor/util/plugins/com.google.dart.java2dart/resources/ast_include.dart

Issue 107833002: New analyzer snapshot. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 1
2 /** 2 /**
3 * Instances of the class {@code NodeList} represent a list of AST nodes that ha ve a common parent. 3 * Instances of the class {@code NodeList} represent a list of AST nodes that ha ve a common parent.
4 */ 4 */
5 class NodeList<E extends ASTNode> extends Object with ListMixin<E> { 5 class NodeList<E extends ASTNode> extends Object with ListMixin<E> {
6 /** 6 /**
7 * Create an empty list with the given owner. This is a convenience method tha t allows the 7 * Create an empty list with the given owner. This is a convenience method tha t allows the
8 * compiler to determine the correct value of the type argument [E] without ne eding to 8 * compiler to determine the correct value of the type argument [E] without ne eding to
9 * explicitly specify it. 9 * explicitly specify it.
10 * 10 *
(...skipping 18 matching lines...) Expand all
29 * @param owner the node that is the parent of each of the elements in the lis t 29 * @param owner the node that is the parent of each of the elements in the lis t
30 */ 30 */
31 NodeList(this.owner); 31 NodeList(this.owner);
32 32
33 /** 33 /**
34 * Use the given visitor to visit each of the nodes in this list. 34 * Use the given visitor to visit each of the nodes in this list.
35 * 35 *
36 * @param visitor the visitor to be used to visit the elements of this list 36 * @param visitor the visitor to be used to visit the elements of this list
37 */ 37 */
38 accept(ASTVisitor visitor) { 38 accept(ASTVisitor visitor) {
39 for (E element in _elements) { 39 var length = _elements.length;
40 element.accept(visitor); 40 for (var i = 0; i < length; i++) {
41 _elements[i].accept(visitor);
41 } 42 }
42 } 43 }
43 void add(E node) { 44 void add(E node) {
44 insert(length, node); 45 insert(length, node);
45 } 46 }
46 void insert(int index, E node) { 47 void insert(int index, E node) {
47 int length = _elements.length; 48 int length = _elements.length;
48 if (index < 0 || index > length) { 49 if (index < 0 || index > length) {
49 throw new RangeError("Index: ${index}, Size: ${_elements.length}"); 50 throw new RangeError("Index: ${index}, Size: ${_elements.length}");
50 } 51 }
51 owner.becomeParentOf(node); 52 owner.becomeParentOf(node);
52 if (length == 0) { 53 if (length == 0) {
53 _elements = <E> [node]; 54 _elements = <E> [node];
54 } else { 55 } else {
55 List<E> newElements = new List<E>(length + 1); 56 _elements.insert(index, node);
56 JavaSystem.arraycopy(_elements, 0, newElements, 0, index);
57 newElements[index] = node;
58 JavaSystem.arraycopy(_elements, index, newElements, index + 1, length - in dex);
59 _elements = newElements;
60 } 57 }
61 } 58 }
62 bool addAll(Iterable<E> nodes) { 59 bool addAll(Iterable<E> nodes) {
63 if (nodes != null && !nodes.isEmpty) { 60 if (nodes != null && !nodes.isEmpty) {
64 int oldCount = _elements.length; 61 _elements.addAll(nodes);
65 int newCount = nodes.length;
66 List<E> newElements = new List<E>(oldCount + newCount);
67 JavaSystem.arraycopy(_elements, 0, newElements, 0, oldCount);
68 int index = oldCount;
69 for (E node in nodes) { 62 for (E node in nodes) {
70 owner.becomeParentOf(node); 63 owner.becomeParentOf(node);
71 newElements[index++] = node;
72 } 64 }
73 _elements = newElements;
74 return true; 65 return true;
75 } 66 }
76 return false; 67 return false;
77 } 68 }
78 E operator[](int index) { 69 E operator[](int index) {
79 if (index < 0 || index >= _elements.length) { 70 if (index < 0 || index >= _elements.length) {
80 throw new RangeError("Index: ${index}, Size: ${_elements.length}"); 71 throw new RangeError("Index: ${index}, Size: ${_elements.length}");
81 } 72 }
82 return _elements[index] as E; 73 return _elements[index] as E;
83 } 74 }
(...skipping 24 matching lines...) Expand all
108 E removeAt(int index) { 99 E removeAt(int index) {
109 if (index < 0 || index >= _elements.length) { 100 if (index < 0 || index >= _elements.length) {
110 throw new RangeError("Index: ${index}, Size: ${_elements.length}"); 101 throw new RangeError("Index: ${index}, Size: ${_elements.length}");
111 } 102 }
112 E removedNode = _elements[index] as E; 103 E removedNode = _elements[index] as E;
113 int length = _elements.length; 104 int length = _elements.length;
114 if (length == 1) { 105 if (length == 1) {
115 _elements = ASTNode.EMPTY_ARRAY; 106 _elements = ASTNode.EMPTY_ARRAY;
116 return removedNode; 107 return removedNode;
117 } 108 }
118 List<E> newElements = new List<E>(length - 1); 109 _elements.removeAt(index);
119 JavaSystem.arraycopy(_elements, 0, newElements, 0, index);
120 JavaSystem.arraycopy(_elements, index + 1, newElements, index, length - inde x - 1);
121 _elements = newElements;
122 return removedNode; 110 return removedNode;
123 } 111 }
124 void operator[]=(int index, E node) { 112 void operator[]=(int index, E node) {
125 if (index < 0 || index >= _elements.length) { 113 if (index < 0 || index >= _elements.length) {
126 throw new RangeError("Index: ${index}, Size: ${_elements.length}"); 114 throw new RangeError("Index: ${index}, Size: ${_elements.length}");
127 } 115 }
128 _elements[index] as E;
129 owner.becomeParentOf(node); 116 owner.becomeParentOf(node);
130 _elements[index] = node; 117 _elements[index] = node;
131 } 118 }
132 int get length => _elements.length; 119 int get length => _elements.length;
133 } 120 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698