blob: 48c368827a6c1a3d389ff952be82404ef178cb89 [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.
// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation
// VMOptions=--optimization-counter-threshold=10 --no-use-osr --no-background-compilation --no-lazy-dispatchers
// @dart = 2.9
import "package:expect/expect.dart";
// Test error message with misusing Functions and Closures: wrong args
// should result in a message that reports the missing method.
call_with_bar(x) => x("bar");
testClosureMessage() {
try {
call_with_bar(() {});
} catch (e) {
// The latter may happen if in --dwarf-stack-traces mode.
final possibleNames = ['testClosureMessage', '<optimized out>'];
Expect.containsOneOf(
possibleNames.map((s) => s + '.<anonymous closure>("bar")'),
e.toString());
}
}
noargs() {}
testFunctionMessage() {
try {
call_with_bar(noargs);
} catch (e) {
final expectedStrings = [
'Tried calling: noargs("bar")',
];
Expect.stringContainsInOrder(e.toString(), expectedStrings);
}
}
main() {
for (var i = 0; i < 20; i++) testClosureMessage();
for (var i = 0; i < 20; i++) testFunctionMessage();
}