summaryrefslogtreecommitdiff
path: root/ops/optimizer_tests/param_mut_binding_warning.out
diff options
context:
space:
mode:
authorMatt Mastracci <matthew@mastracci.com>2023-06-29 10:23:14 -0600
committerGitHub <noreply@github.com>2023-06-29 10:23:14 -0600
commitfbb69329343c9985c26181e6297e6556c46d381d (patch)
treeee428c94727bdfdf9040a4944bd66981b4cd07fb /ops/optimizer_tests/param_mut_binding_warning.out
parent98df69fd4cbe3687e2ff3519fbd6bff4e5f3101f (diff)
refactor(ops): op2 support for generics (#19636)
Implementation of generics for `#[op2]`, along with some refactoring to improve the ergonomics of ops with generics parameters: - The ops have generics on the struct rather than the associated methods, which allows us to trait-ify ops (impossible when they are on the methods) - The decl() method can become a trait-associated const field which unlocks future optimizations Callers of ops need to switch from: `op_net_connect_tcp::call::<TestPermission>(conn_state, ip_addr)` to `op_net_connect_tcp::<TestPermission>::call(conn_state, ip_addr)`.
Diffstat (limited to 'ops/optimizer_tests/param_mut_binding_warning.out')
-rw-r--r--ops/optimizer_tests/param_mut_binding_warning.out26
1 files changed, 20 insertions, 6 deletions
diff --git a/ops/optimizer_tests/param_mut_binding_warning.out b/ops/optimizer_tests/param_mut_binding_warning.out
index 5435b21db..43a33d6e3 100644
--- a/ops/optimizer_tests/param_mut_binding_warning.out
+++ b/ops/optimizer_tests/param_mut_binding_warning.out
@@ -3,16 +3,29 @@
///
///Use `op_read_sync::decl()` to get an op-declaration
///you can include in a `deno_core::Extension`.
-pub struct op_read_sync;
+pub struct op_read_sync {
+ _phantom_data: ::std::marker::PhantomData<()>,
+}
+impl deno_core::_ops::Op for op_read_sync {
+ const NAME: &'static str = stringify!(op_read_sync);
+ const DECL: deno_core::OpDecl = deno_core::OpDecl {
+ name: Self::name(),
+ v8_fn_ptr: Self::v8_fn_ptr as _,
+ enabled: true,
+ fast_fn: None,
+ is_async: false,
+ is_unstable: false,
+ is_v8: false,
+ arg_count: 0,
+ };
+}
#[doc(hidden)]
impl op_read_sync {
pub const fn name() -> &'static str {
stringify!(op_read_sync)
}
#[allow(clippy::not_unsafe_ptr_arg_deref)]
- pub extern "C" fn v8_fn_ptr<'scope>(
- info: *const deno_core::v8::FunctionCallbackInfo,
- ) {
+ pub extern "C" fn v8_fn_ptr(info: *const deno_core::v8::FunctionCallbackInfo) {
let info = unsafe { &*info };
let scope = &mut unsafe { deno_core::v8::CallbackScope::new(info) };
let args = deno_core::v8::FunctionCallbackArguments::from_function_callback_info(
@@ -21,7 +34,7 @@ impl op_read_sync {
let rv = deno_core::v8::ReturnValue::from_function_callback_info(info);
Self::v8_func(scope, args, rv);
}
- pub const fn decl<'scope>() -> deno_core::OpDecl {
+ pub const fn decl() -> deno_core::OpDecl {
deno_core::OpDecl {
name: Self::name(),
v8_fn_ptr: Self::v8_fn_ptr as _,
@@ -35,7 +48,8 @@ impl op_read_sync {
}
#[inline]
#[allow(clippy::too_many_arguments)]
- fn call(
+ #[allow(clippy::extra_unused_lifetimes)]
+ fn call<'scope>(
state: &mut OpState,
rid: ResourceId,
mut buf: ZeroCopyBuf,