prettier/tests/flow/generics/__snapshots__/jsfmt.spec.js.snap

109 lines
1.9 KiB
Plaintext
Raw Normal View History

exports[`test generics.js 1`] = `
"class C<X> {
x:X;
constructor(x:X) { this.x = x; }
get():X { return this.x; }
}
class D<T> {
x:T;
m<S>(z:S,u:T,v):S {
this.x = u;
v.u = u;
return z;
}
}
var d = new D();
var o = {};
var b = d.m(true,0,o);
var s:string = d.x;
var n:number = o.u;
class E<X> extends C<X> {
//x:X;
set(x:X):X { /*return x;*/ this.x = x; return /*this.x; */this.get(); }
}
var e = new E(); // error: too few arguments to inherited constructor
var x:string = e.set(0);
class F<X> { }
class G<Y> extends F<Array<Y>> {}
class H<Z> extends G<Array<Z>> {
x:Z;
foo(x:Z) { this.x = x; }
}
var h1 = new H();
2016-12-30 19:56:42 +03:00
h1.foo([\"...\"]);
var h2:F<Array<Array<Array<number>>>> = h1;
var obj : Object<string, string> = {} // error, arity 0
2016-12-30 19:56:42 +03:00
var fn : Function<string> = function() { return \'foo\'; } // error, arity 0
var fn : function<string> = function() { return \'foo\'; } // error, arity 0
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2016-12-27 21:29:31 +03:00
class C<X> {
x: X;
constructor(x: X) {
this.x = x;
}
get(): X {
return this.x;
}
}
2016-12-27 21:29:31 +03:00
class D<T> {
x: T;
m<S>(z: S, u: T, v): S {
this.x = u;
v.u = u;
return z;
}
}
var d = new D();
2016-12-27 21:29:31 +03:00
var o = {};
var b = d.m(true, 0, o);
2016-12-27 21:29:31 +03:00
var s: string = d.x;
var n: number = o.u;
2016-12-27 21:29:31 +03:00
class E<X> extends C<X> {
//x:X;
2016-12-27 21:29:31 +03:00
set(x: X): X {
/*return x;*/
2016-12-27 21:29:31 +03:00
this.x = x;
return /*this.x; */
this.get();
2016-12-27 21:29:31 +03:00
}
}
var e = new E();
// error: too few arguments to inherited constructor
var x: string = e.set(0);
2016-12-27 21:29:31 +03:00
class F<X> {}
class G<Y> extends F<Array<Y>> {}
class H<Z> extends G<Array<Z>> {
x: Z;
foo(x: Z) {
this.x = x;
}
}
var h1 = new H();
h1.foo([\"...\"]);
2016-12-27 21:29:31 +03:00
var h2: F<Array<Array<Array<number>>>> = h1;
2016-12-27 21:29:31 +03:00
var obj: Object<string, string> = {};
// error, arity 0
2016-12-27 21:29:31 +03:00
var fn: Function<string> = function() {
2016-12-30 19:56:42 +03:00
return \"foo\";
2016-12-27 21:29:31 +03:00
};
// error, arity 0
2016-12-27 21:29:31 +03:00
var fn: function<string> = function() {
2016-12-30 19:56:42 +03:00
return \"foo\";
2017-01-11 18:16:38 +03:00
}; // error, arity 0
"
`;