blob: d5243c57b828ead2333a80583177a29ceddc48e4 [file] [log] [blame]
// Copyright (c) 2012, 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.
// Test parsing and resolution of argument definition test.
int test(int a, {int b: 2, int c: 3}) {
int result = 0;
print(?b);
print(?result); /// 01: compile-time error
print(?a);
print(?b);
print(?c);
{
var b;
?b; /// 02: compile-time error
}
print((!?a?!?b:!?c) == (?a??b:?c));
print(!?a?!?b:!?c == ?a??b:?c);
}
closure_test(int a, {int b: 2, int c: 3}) {
var x = 0;
return () {
int result = 0;
print(?b);
print(?result); /// 03: compile-time error
print(?x); /// 04: compile-time error
print(?a);
print(?b);
print(?c);
{
var b;
?b; /// 05: compile-time error
}
print((!?a?!?b:!?c) == (?a??b:?c));
print(!?a?!?b:!?c == ?a??b:?c);
};
}
main() {
test(1);
test(1, b: 2);
test(1, b: 2, c: 3);
test(1, c: 3);
closure_test(1)();
closure_test(1, b: 2)();
closure_test(1, b: 2, c: 3)();
closure_test(1, c: 3)();
}