• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (C) 2025 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 import { memo, __memo_context_type, __memo_id_type } from "@ohos.arkui.stateManagement"
17
18class Person {
19    constructor() {}
20}
21
22function fullName(this: Person, @memo arg?: () => void): void {
23  return;
24}
25
26class A {}
27
28type F1 = (this: A, @memo arg?: () => void) => void;
29type F2 = (a: A, @memo arg?: () => void) => void;
30
31function foo(this: A, @memo arg?: () => void): void {}
32function goo(a: A, @memo arg?: () => void): void {}
33
34@memo
35() => {
36    let x = new Person();
37    x.fullName(() => {});
38
39    let f1: F1 = foo;
40    f1 = goo;
41
42    let f2: F2 = goo;
43    f2 = foo;
44    f1 = f2;
45
46    let a = new A();
47    a.f1(() => {});
48    f1(a, () => {});
49
50    f2(a, () => {});
51}