• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (c) 2021-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/*---
17desc:  {function: Engine_array}
18---*/
19
20
21interface Iface<T> {
22    returnArray() : (T | undefined)[];
23}
24
25class Provider<T> implements Iface<T> {
26    override returnArray(): (T | undefined)[] {
27        return new (T | undefined)[5];
28    }
29}
30
31function main() : int {
32    let provider = new Provider<Engine<Propan>>();
33    let result = provider.returnArray();
34    if (result.length != 5) return 1;
35
36    for (let i = 0; i< result.length; i++) {
37        result[i] = new Engine<Propan>();
38    }
39    for (let i = 0; i< result.length; i++) {
40        console.println(result[i]);
41        if (!result[i]!.name.equals("Propan")) return 1;
42    }
43    return 0;
44}
45
46class Engine<T> {
47    public name : T;
48}
49
50
51class Propan {
52    constructor() {
53	  this.name = "Propan"
54    }
55    public name: String
56}
57