prettier/tests/flow/refi/bound.js

65 lines
1.0 KiB
JavaScript

// refinements of bound vars (closed-over locals)
// should have the same lifetimes as heap objects.
var x : ?string = "xxx";
var tests =
[
function() {
var y : string = x; // not ok
},
function() {
if (x != null) {
var y : string = x; // ok
}
},
function() {
if (x == null) {} else {
var y : string = x; // ok
}
},
function() {
if (x == null)
return;
var y : string = x; // ok
},
function() {
if (!(x != null)) {} else {
var y : string = x; // ok
}
},
/* TODO we actually allow this currently; fix
// requires further remedial work in Env
function() {
if (x != null) {
alert("");
var y : string = x; // not ok
}
},
*/
function() {
if (x != null) {}
var y : string = x; // not ok
},
function() {
if (x != null) {
} else {
var y : string = x; // not ok
}
},
function() {
var y : string = x != null ? x : ""; // ok
},
function() {
var y : string = x || ""; // ok
},
];