| 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 // TODO(ahe): This class should not be generic. | 5 // TODO(ahe): This class should not be generic. |
| 6 class LinkFactory { | 6 class LinkFactory { |
| 7 factory Link<T>(head, [Link tail]) { | 7 factory Link<T>(T head, [Link<T> tail]) { |
| 8 if (tail === null) { | 8 if (tail === null) { |
| 9 // TODO(ahe): Remove below comment about Frog bug when it is fixed. | 9 tail = new LinkTail<T>(); |
| 10 tail = new LinkTail<T>(); // Frog bug: T is in scope. | |
| 11 } | 10 } |
| 12 // TODO(ahe): Remove below comment about Frog bug when it is fixed. | 11 return new LinkEntry<T>(head, tail); |
| 13 return new LinkEntry<T>(head, tail); // Frog bug: T is in scope. | |
| 14 } | 12 } |
| 15 | 13 |
| 16 factory Link<T>.fromList(List list) { | 14 factory Link<T>.fromList(List<T> list) { |
| 17 switch (list.length) { | 15 switch (list.length) { |
| 18 case 0: | 16 case 0: |
| 19 return new LinkTail<T>(); | 17 return new LinkTail<T>(); |
| 20 case 1: | 18 case 1: |
| 21 return new Link<T>(list[0]); | 19 return new Link<T>(list[0]); |
| 22 case 2: | 20 case 2: |
| 23 return new Link<T>(list[0], new Link<T>(list[1])); | 21 return new Link<T>(list[0], new Link<T>(list[1])); |
| 24 case 3: | 22 case 3: |
| 25 return new Link<T>(list[0], new Link<T>(list[1], new Link<T>(list[2]))); | 23 return new Link<T>(list[0], new Link<T>(list[1], new Link<T>(list[2]))); |
| 26 } | 24 } |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 122 void addLast(T t) { | 120 void addLast(T t) { |
| 123 LinkEntry<T> entry = new LinkEntry<T>(t, null); | 121 LinkEntry<T> entry = new LinkEntry<T>(t, null); |
| 124 if (head === null) { | 122 if (head === null) { |
| 125 head = entry; | 123 head = entry; |
| 126 } else { | 124 } else { |
| 127 lastLink.realTail = entry; | 125 lastLink.realTail = entry; |
| 128 } | 126 } |
| 129 lastLink = entry; | 127 lastLink = entry; |
| 130 } | 128 } |
| 131 } | 129 } |
| OLD | NEW |