blob: fcdcdb1d4b6c0ff4a8f02035d5905fb6f4d41d1a [file] [log] [blame]
/*
* Copyright (c) 2011, 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.
*/
/**
* @assertion An external function is a function whose body is provided
* separately from its declaration. An external function may be a top-level
* function, a method, a getter, a setter or a non-redirecting constructor.
* External functions are introduced via the built-in identifier external
* followed by the function signature.
* An external function is connected to its body by an implementation specific
* mechanism. Attempting to invoke an external function that has not been
* connected to its body will raise a NoSuchMethodError or some subclass
* thereof.
* @description Checks that invoking an external function that is not connected
* to its body indeed results in a NoSuchMethodError or its subclass being
* thrown.
* @author rodionov
* @reviewer kaigorodov
*/
import '../../../Utils/expect.dart';
external f();
external g([var x]);
external h({var x});
main() {
var s = "";
try {
f();
Expect.fail("NoSuchMethodError expected");
} on NoSuchMethodError catch (e) {
} catch (e) {print("unexpected exception of type ${e.runtimeType}: $e");}
try {
g();
Expect.fail("NoSuchMethodError expected");
} on NoSuchMethodError catch (e) {}
try {
h();
Expect.fail("NoSuchMethodError expected");
} on NoSuchMethodError catch (e) {}
}