Skip to content

Commit 0eee6b9

Browse files
srawlinsCommit Queue
authored andcommitted
analyzer: mock SDK: correct declarations in ffi library
* Opaque is unannotated. * Void is abstract. * `Pointer.fromFunction` is external. * `NativeCallable`'s constructors are each factory. * _Compound and DynamicLibrary are not abstract. * `DynamicLibraryExtension.lookupFunction`'s optional parameter's default value must be specified with `=` not `:`. * Native has no `asset` field, but does have `assetId`. * `Pointer.addressOf`, DefaultAsset, and Abi have `@Since` annotations. * There is no class, Asset. * Abi is not final. Change-Id: I59b02a2480a1c8932b62026d90e484d476abbe11 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/451120 Commit-Queue: Samuel Rawlins <[email protected]> Reviewed-by: Konstantin Shcheglov <[email protected]>
1 parent 9b12e8a commit 0eee6b9

File tree

1 file changed

+28
-29
lines changed

1 file changed

+28
-29
lines changed

pkg/analyzer/lib/src/test_utilities/mock_sdk.dart

Lines changed: 28 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -737,10 +737,9 @@ abstract final class SizedNativeType implements NativeType {}
737737
@Since('2.9')
738738
abstract final class Handle implements NativeType {}
739739
740-
@Since('2.12')
741740
abstract base class Opaque implements NativeType {}
742741
743-
final class Void implements NativeType {}
742+
abstract final class Void implements NativeType {}
744743
745744
final class Int8 implements SizedNativeType {
746745
const Int8();
@@ -813,22 +812,26 @@ final class IntPtr extends AbiSpecificInteger {
813812
final class Pointer<T extends NativeType> implements SizedNativeType {
814813
external factory Pointer.fromAddress(int ptr);
815814
816-
static Pointer<NativeFunction<T>> fromFunction<T extends Function>(
817-
@DartRepresentationOf("T") Function f,
818-
[Object exceptionalReturn]) {}
815+
external static Pointer<NativeFunction<T>> fromFunction<T extends Function>(
816+
@DartRepresentationOf('T') Function f, [
817+
Object? exceptionalReturn,
818+
]);
819819
820820
external Pointer<U> cast<U extends NativeType>();
821-
822821
}
823822
824823
final Pointer<Never> nullptr = Pointer.fromAddress(0);
825824
826-
class NativeCallable<T extends Function> {
827-
NativeCallable.isolateLocal(
828-
@DartRepresentationOf("T") Function callback,
829-
{Object? exceptionalReturn}) {}
825+
@Since('3.1')
826+
abstract final class NativeCallable<T extends Function> {
827+
factory NativeCallable.isolateLocal(
828+
@DartRepresentationOf("T") Function callback, {
829+
Object? exceptionalReturn,
830+
}) => throw 0;
830831
831-
NativeCallable.listener(@DartRepresentationOf("T") Function callback) {}
832+
factory NativeCallable.listener(
833+
@DartRepresentationOf("T") Function callback,
834+
) => throw 0;
832835
833836
Pointer<NativeFunction<T>> get nativeFunction;
834837
@@ -840,7 +843,7 @@ extension NativeFunctionPointer<NF extends Function>
840843
external DF asFunction<DF extends Function>({bool isLeaf = false});
841844
}
842845
843-
abstract final class _Compound implements NativeType {}
846+
final class _Compound implements NativeType {}
844847
845848
abstract base class Struct extends _Compound implements SizedNativeType {
846849
@Since('3.4')
@@ -864,15 +867,16 @@ final class Packed {
864867
const Packed(this.memberAlignment);
865868
}
866869
867-
abstract final class DynamicLibrary {
868-
external factory DynamicLibrary.open(String name);
869-
870+
final class DynamicLibrary {
871+
external factory DynamicLibrary.open(String path);
870872
external Pointer<T> lookup<T extends NativeType>(String symbolName);
871873
}
872874
873875
extension DynamicLibraryExtension on DynamicLibrary {
874876
external F lookupFunction<T extends Function, F extends Function>(
875-
String symbolName, {bool isLeaf:false});
877+
String symbolName, {
878+
bool isLeaf = false,
879+
});
876880
}
877881
878882
abstract final class NativeFunction<T extends Function> implements NativeType {}
@@ -990,30 +994,25 @@ extension StructPointer<T extends Struct> on Pointer<T> {
990994
@Since('2.19')
991995
final class Native<T> {
992996
final String? symbol;
993-
final String? asset;
997+
final String? assetId;
994998
final bool isLeaf;
995999
996-
const Native({
997-
this.asset,
998-
this.isLeaf: false,
999-
this.symbol,
1000-
});
1000+
const Native({this.assetId, this.isLeaf = false, this.symbol});
10011001
1002+
@Since('3.3')
10021003
external static Pointer<T> addressOf<T extends NativeType>(
1003-
@DartRepresentationOf('T') Object object);
1004+
@DartRepresentationOf('T') Object native,
1005+
);
10041006
}
10051007
1008+
@Since('2.19')
10061009
final class DefaultAsset {
10071010
final String id;
10081011
const DefaultAsset(this.id);
10091012
}
10101013
1011-
final class Asset {
1012-
final String asset;
1013-
const Asset(this.asset);
1014-
}
1015-
1016-
final class Abi {
1014+
@Since('2.16')
1015+
class Abi {
10171016
static const androidArm = _androidArm;
10181017
static const androidArm64 = _androidArm64;
10191018
static const androidIA32 = _androidIA32;

0 commit comments

Comments
 (0)