blob: 56573a52a849d5073e8c03516c8a0682c133530f [file] [log] [blame]
// Copyright (c) 2020, 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 The implicit tear-off conversion which converts uses of instances
/// of classes with call methods to the tear-off of their .call method when the
/// context type is a function type is performed when the context type is a
/// function type, or the nullable version of a context type.
///
/// @description Check that the implicit tear-off conversion which converts uses
/// of instances of classes with call methods to the tear-off of their .call
/// method when the context type is a function type is performed when the context
/// type is a nullable version of a context type
/// @author sgrekhov@unipro.ru
// Requirements=nnbd-strong
import "../../Utils/expect.dart";
typedef int Foo();
class C {
int call() => 42;
}
main() {
C c = new C();
Function? f = c;
if (f != null) {
Expect.equals(42, f());
}
test(c);
}
test(Foo? f) {
if (f != null) {
Expect.equals(42, f());
}
}