Description
This is fisk.dart:
interface Link<T> extends Iterable<T> factory LinkFactory {
Link(T head, [Link<T> tail]);
Link<T> prepend(T element);
}
interface EmptyLink<T> extends Link<T> factory LinkTail<T> {
const EmptyLink();
}
class LinkFactory {
factory Link<T>(head, [Link tail]) {
}
}
class AbstractLink<T> implements Link<T> {
const AbstractLink();
Link<T> prepend(T element) {
return new Link<T>(element, this);
}
}
class LinkTail<T> extends AbstractLink<T> implements EmptyLink<T> {
const LinkTail();
}
class LinkEntry<T> extends AbstractLink<T> {
LinkEntry(T head, Link<T> realTail);
}
main() {
new EmptyLink<String>().prepend('hest');
const EmptyLink<String>().prepend('fisk');
}
./xcodebuild/Debug_ia32/dart_bin --enable_type_checks fisk.dart
'fisk.dart': Error: line 31 pos 3: incorrect number of type arguments, expected 2 got 1
new EmptyLink<String>().prepend('hest');
^