blob: 62d95197dc641fe4fe3290a17416f863104a545d [file] [log] [blame] [edit]
dart_library.library('covariance', null, /* Imports */[
'dart/_runtime',
'dart/core'
], /* Lazy imports */[
], function(exports, dart, core) {
'use strict';
let dartx = dart.dartx;
const _t = Symbol('_t');
const Foo$ = dart.generic(function(T) {
class Foo extends core.Object {
Foo() {
this[_t] = null;
}
add(t) {
dart.as(t, T);
this[_t] = t;
}
forEach(fn) {
dart.as(fn, dart.functionType(dart.void, [T]));
fn(this[_t]);
}
}
dart.setSignature(Foo, {
methods: () => ({
add: [dart.dynamic, [T]],
forEach: [dart.dynamic, [dart.functionType(dart.void, [T])]]
})
});
return Foo;
});
let Foo = Foo$();
class Bar extends Foo$(core.int) {
Bar() {
super.Foo();
}
add(x) {
core.print(`Bar.add got ${x}`);
super.add(x);
}
}
dart.setSignature(Bar, {
methods: () => ({add: [dart.dynamic, [core.int]]})
});
function main() {
let foo = new Bar();
foo.add('hi');
}
dart.fn(main);
// Exports:
exports.Foo$ = Foo$;
exports.Foo = Foo;
exports.Bar = Bar;
exports.main = main;
});