blob: 840e1b445c6e4ab4165020f19e6f3b04930e9602 [file] [log] [blame]
// Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
/*member: main:[null|powerset={null}]*/
main() {
emptyTryCatch();
emptyTryFinally();
emptyTryCatchFinally();
tryCatchAssignmentInTry();
tryCatchAssignmentInCatch();
tryFinallyAssignmentInFinally();
tryCatchAssignmentInTryCatch();
tryCatchAssignmentInTryFinally();
tryCatchParameterAssignmentInTry();
tryCatchParameterAssignmentInCatch();
tryFinallyParameterAssignmentInFinally();
tryCatchParameterAssignmentInTryCatch();
tryFinallyParameterAssignmentInTryFinally();
}
////////////////////////////////////////////////////////////////////////////////
/// Parameter passed through an empty try-catch statement.
////////////////////////////////////////////////////////////////////////////////
/*member: _emptyTryCatch:[exact=JSUInt31|powerset={I}]*/
_emptyTryCatch(/*[exact=JSUInt31|powerset={I}]*/ o) {
try {} catch (e) {}
return o;
}
/*member: emptyTryCatch:[null|powerset={null}]*/
emptyTryCatch() {
_emptyTryCatch(0);
}
////////////////////////////////////////////////////////////////////////////////
/// Parameter passed through an empty try-finally statement.
////////////////////////////////////////////////////////////////////////////////
/*member: _emptyTryFinally:[exact=JSUInt31|powerset={I}]*/
_emptyTryFinally(/*[exact=JSUInt31|powerset={I}]*/ o) {
try {} finally {}
return o;
}
/*member: emptyTryFinally:[null|powerset={null}]*/
emptyTryFinally() {
_emptyTryFinally(0);
}
////////////////////////////////////////////////////////////////////////////////
/// Parameter passed through an empty try-catch-finally statement.
////////////////////////////////////////////////////////////////////////////////
/*member: _emptyTryCatchFinally:[exact=JSUInt31|powerset={I}]*/
_emptyTryCatchFinally(/*[exact=JSUInt31|powerset={I}]*/ o) {
try {} catch (e) {
} finally {}
return o;
}
/*member: emptyTryCatchFinally:[null|powerset={null}]*/
emptyTryCatchFinally() {
_emptyTryCatchFinally(0);
}
////////////////////////////////////////////////////////////////////////////////
/// A try-catch statement with an assignment in the try block.
////////////////////////////////////////////////////////////////////////////////
/*member: tryCatchAssignmentInTry:[null|exact=JSUInt31|powerset={null}{I}]*/
tryCatchAssignmentInTry() {
int? o = 0;
try {
o = null;
} catch (e) {}
return o;
}
////////////////////////////////////////////////////////////////////////////////
/// A try-catch statement with an assignment in the catch block.
////////////////////////////////////////////////////////////////////////////////
/*member: tryCatchAssignmentInCatch:[null|exact=JSUInt31|powerset={null}{I}]*/
tryCatchAssignmentInCatch() {
int? o = 0;
try {} catch (e) {
o = null;
}
return o;
}
////////////////////////////////////////////////////////////////////////////////
/// A try-finally statement with an assignment in the finally clause.
////////////////////////////////////////////////////////////////////////////////
/*member: tryFinallyAssignmentInFinally:[null|powerset={null}]*/
tryFinallyAssignmentInFinally() {
int? o = 0;
try {} finally {
o = null;
}
return o;
}
////////////////////////////////////////////////////////////////////////////////
/// A try-catch statement with an assignment in both the try block and the catch
/// block.
////////////////////////////////////////////////////////////////////////////////
/*member: tryCatchAssignmentInTryCatch:Union(null, [exact=JSString|powerset={I}], [exact=JSUInt31|powerset={I}], powerset: {null}{I})*/
tryCatchAssignmentInTryCatch() {
dynamic o = 0;
try {
o = '';
} catch (e) {
o = null;
}
return o;
}
////////////////////////////////////////////////////////////////////////////////
/// A try-catch statement with an assignment in both the try block and the
/// finally block.
////////////////////////////////////////////////////////////////////////////////
/*member: tryCatchAssignmentInTryFinally:[null|powerset={null}]*/
tryCatchAssignmentInTryFinally() {
dynamic o = 0;
try {
o = '';
} finally {
o = null;
}
return o;
}
////////////////////////////////////////////////////////////////////////////////
/// Parameter passed through a try-catch statement with an assignment in the
/// catch clause.
////////////////////////////////////////////////////////////////////////////////
/*member: _tryCatchParameterAssignmentInTry:[null|exact=JSUInt31|powerset={null}{I}]*/
_tryCatchParameterAssignmentInTry(/*[exact=JSUInt31|powerset={I}]*/ o) {
try {
o = null;
} catch (e) {}
return o;
}
/*member: tryCatchParameterAssignmentInTry:[null|powerset={null}]*/
tryCatchParameterAssignmentInTry() {
_tryCatchParameterAssignmentInTry(0);
}
////////////////////////////////////////////////////////////////////////////////
/// Parameter passed through a try-catch statement with an assignment in the
/// catch clause.
////////////////////////////////////////////////////////////////////////////////
/*member: _tryCatchParameterAssignmentInCatch:[null|exact=JSUInt31|powerset={null}{I}]*/
_tryCatchParameterAssignmentInCatch(/*[exact=JSUInt31|powerset={I}]*/ o) {
try {} catch (e) {
o = null;
}
return o;
}
/*member: tryCatchParameterAssignmentInCatch:[null|powerset={null}]*/
tryCatchParameterAssignmentInCatch() {
_tryCatchParameterAssignmentInCatch(0);
}
////////////////////////////////////////////////////////////////////////////////
/// Parameter passed through a try-finally statement with an assignment in the
/// finally clause.
////////////////////////////////////////////////////////////////////////////////
/*member: _tryFinallyParameterAssignmentInFinally:[null|powerset={null}]*/
_tryFinallyParameterAssignmentInFinally(/*[exact=JSUInt31|powerset={I}]*/ o) {
try {} finally {
o = null;
}
return o;
}
/*member: tryFinallyParameterAssignmentInFinally:[null|powerset={null}]*/
tryFinallyParameterAssignmentInFinally() {
_tryFinallyParameterAssignmentInFinally(0);
}
////////////////////////////////////////////////////////////////////////////////
/// Parameter passed through a try-catch statement with an assignment in the
/// catch clause.
////////////////////////////////////////////////////////////////////////////////
/*member: _tryCatchParameterAssignmentInTryCatch:Union(null, [exact=JSString|powerset={I}], [exact=JSUInt31|powerset={I}], powerset: {null}{I})*/
_tryCatchParameterAssignmentInTryCatch(/*[exact=JSUInt31|powerset={I}]*/ o) {
try {
o = '';
} catch (e) {
o = null;
}
return o;
}
/*member: tryCatchParameterAssignmentInTryCatch:[null|powerset={null}]*/
tryCatchParameterAssignmentInTryCatch() {
_tryCatchParameterAssignmentInTryCatch(0);
}
////////////////////////////////////////////////////////////////////////////////
/// Parameter passed through a try-finally statement with an assignment in the
/// finally clause.
////////////////////////////////////////////////////////////////////////////////
/*member: _tryFinallyParameterAssignmentInTryFinally:[null|powerset={null}]*/
_tryFinallyParameterAssignmentInTryFinally(
/*[exact=JSUInt31|powerset={I}]*/ o,
) {
try {
o = '';
} finally {
o = null;
}
return o;
}
/*member: tryFinallyParameterAssignmentInTryFinally:[null|powerset={null}]*/
tryFinallyParameterAssignmentInTryFinally() {
_tryFinallyParameterAssignmentInTryFinally(0);
}