blob: c9585ec4ac873e981beb7abd15ba9e794b9ed8a7 [file] [log] [blame]
// Copyright (c) 2016, 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 Let T be the static type of o. It is a static type warning if T
/// does not have an accessible instance member named m unless either:
/// • T or a superinterface of T is annotated with an annotation denoting a
/// constant identical to the constant @proxy defined in dart:core. Or
/// • T is Type, e is a constant type literal and the class corresponding to e
/// has a static getter named m.
/// • T is Function and m is call. The type Function is treated as if it has a
/// call method for any possible signature of call. The expectation is that
/// any concrete subclass of Function will implement call. Note that a warning
/// will be issue if this is not the case. Furthermore, any use of call on a
/// subclass of Function that fails to implement call will also provoke a
/// warning, as this exemption is limited to type Function, and does not apply
/// to its subtypes.
/// @description Checks that there is no static type warning if T is a constant
/// type literal and the class corresponding to e has a static getter named m.
/// @author ngl@unipro.ru
class C {
static get staticget => 3;
}
main() {
try {
C.staticget();
} on NoSuchMethodError catch (e) {}
}