dart-sdk/runtime
Clement Skau 998d5f5a9b [vm/ffi] Adds FFI transform FfiNative instance methods.
- Allows FfiNative annotation to be attached to non-static
  methods of classes.
- Transforms non-static instance methods to static, adding
  wrappers with the receiver as an extra, implicit first paramters.
- Transform all parameters and arguments to Pointer if the object
  being passed supports it (i.e. extends NativeFieldWrapperClass1).
- Adds compile time errors for cases where the FfiNative annotation
  doesn't align with the annotated function. Taking into account
  implicit receivers and converted Pointers.
- Adds complimentary Analyzer checks for the above errors as well.
- Adds tests for the transforms, compile time errors and analyzer
  changes.

TEST=Adds new tests for instance methods, analyzer changes.

Change-Id: Idf54430acf2728a650008333b149b254941290ad
Cq-Do-Not-Cancel-Tryjobs: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/213773
Commit-Queue: Clement Skau <cskau@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Reviewed-by: Daco Harkes <dacoharkes@google.com>
2021-10-12 10:58:44 +00:00
..
bin [vm/ffi] Adds FFI transform FfiNative instance methods. 2021-10-12 10:58:44 +00:00
docs Incorrect wording 2021-10-04 08:39:38 +00:00
include [vm] Native API DL: dllexport on Windows 2021-10-06 07:42:44 +00:00
lib [vm/concurrency] Allow StackTrace objects to be shared 2021-10-11 09:01:44 +00:00
observatory [ Observatory ] Remove footer with dead / irrelevant links 2021-10-11 23:30:24 +00:00
observatory_2 [ Observatory ] Remove footer with dead / irrelevant links 2021-10-11 23:30:24 +00:00
platform [vm] Give a better error if one tries to build simia32 or simx64. 2021-09-27 23:45:45 +00:00
tests [vm/test] Avoid timeout in vm/dart_2/rematerialize_unboxed_double_field_test 2021-10-12 08:32:24 +00:00
third_party [tools] Update all iteritems -> items 2021-05-20 11:36:52 +00:00
tools Change references to "dartfmt" in runtime and tools to "dart format". 2021-10-01 18:16:27 +00:00
vm [vm] Defer Field::RecordStore in Deserialization 2021-10-11 16:27:20 +00:00
.clang-tidy
.gitignore
BUILD.gn Allow deprecated copy on fuchsia 2021-08-11 01:14:22 +00:00
codereview.settings
configs.gni
CPPLINT.cfg
PRESUBMIT.py [python3] Migrate PRESUBMIT.py files 2021-08-16 08:29:54 +00:00
runtime_args.gni [wasm] Remove deprecated dart_enable_wasm flag. 2021-04-01 22:45:07 +00:00