545ee13cd4
Change-Id: I193e19581d29a9c4b343ae0a681d1ff530cfce1d Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/281309 Commit-Queue: Nate Biggs <natebiggs@google.com> Reviewed-by: Mayank Patke <fishythefish@google.com>
75 lines
1.4 KiB
Dart
75 lines
1.4 KiB
Dart
// Copyright (c) 2018, 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.
|
|
|
|
// @dart = 2.7
|
|
|
|
main() {
|
|
directCall();
|
|
indirectCall();
|
|
instanceTearOff();
|
|
localCall();
|
|
instantiatedCall();
|
|
}
|
|
|
|
/*member: _directCall:apply*/
|
|
_directCall() {}
|
|
|
|
/*member: directCall:*/
|
|
void directCall() {
|
|
Function.apply(_directCall, []);
|
|
}
|
|
|
|
/*member: _indirectCall:apply*/
|
|
_indirectCall() {}
|
|
|
|
/*member: _indirectCallHelper:*/
|
|
_indirectCallHelper(f) => Function.apply(f, []);
|
|
|
|
/*member: indirectCall:*/
|
|
void indirectCall() {
|
|
_indirectCallHelper(_indirectCall);
|
|
}
|
|
|
|
/*member: Class.:*/
|
|
class Class {
|
|
/*member: Class.instanceTearOff1:apply*/
|
|
instanceTearOff1() {}
|
|
|
|
/*member: Class.instanceTearOff2:*/
|
|
instanceTearOff2() {}
|
|
}
|
|
|
|
/*member: _instanceTearOffHelper:*/
|
|
_instanceTearOffHelper(f) => Function.apply(f, []);
|
|
|
|
instanceTearOff() {
|
|
var c = Class();
|
|
_instanceTearOffHelper(c.instanceTearOff1);
|
|
return c.instanceTearOff2;
|
|
}
|
|
|
|
localCall() {
|
|
/*apply*/ local1() {}
|
|
local2() {}
|
|
local3() {}
|
|
|
|
Function.apply(local1, []);
|
|
local2();
|
|
return local3;
|
|
}
|
|
|
|
instantiatedCall() {
|
|
/*apply*/ local1<T>(T t) {}
|
|
local2<T>(T t) {}
|
|
local3<T>(T t) {}
|
|
|
|
Function(int) f1 = local1;
|
|
Function(int) f2 = local2;
|
|
Function(int) f3 = local3;
|
|
|
|
Function.apply(f1, [0]);
|
|
f2(0);
|
|
return f3;
|
|
}
|