| OLD | NEW |
| 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 class LinkFactory { | 5 // TODO(regis): Move type parameter <T> from the class declaration to the |
| 6 // factory declarations after the new factory syntax is implemented. |
| 7 // See issues 226, 5257789, 5408808. |
| 8 class LinkFactory<T> { |
| 6 factory Link(head, [Link tail]) { | 9 factory Link(head, [Link tail]) { |
| 7 return new LinkEntry(head, (tail === null) ? const LinkTail() : tail); | 10 return new LinkEntry(head, (tail === null) ? const LinkTail() : tail); |
| 8 } | 11 } |
| 9 | 12 |
| 10 factory Link.fromList(List list) { | 13 factory Link.fromList(List list) { |
| 11 switch (list.length) { | 14 switch (list.length) { |
| 12 case 0: | 15 case 0: |
| 13 return const LinkTail(); | 16 return const LinkTail(); |
| 14 case 1: | 17 case 1: |
| 15 return new Link(list[0]); | 18 return new Link(list[0]); |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 115 void addLast(T t) { | 118 void addLast(T t) { |
| 116 LinkEntry<T> entry = new LinkEntry<T>(t, null); | 119 LinkEntry<T> entry = new LinkEntry<T>(t, null); |
| 117 if (head === null) { | 120 if (head === null) { |
| 118 head = entry; | 121 head = entry; |
| 119 } else { | 122 } else { |
| 120 lastLink.realTail = entry; | 123 lastLink.realTail = entry; |
| 121 } | 124 } |
| 122 lastLink = entry; | 125 lastLink = entry; |
| 123 } | 126 } |
| 124 } | 127 } |
| OLD | NEW |