1/* 2 * Copyright (c) 2024 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 16declare class CIterator implements Iterator<string> { 17 18 private ind_: int; 19 private base_: C; 20 21 constructor (base: C) 22 23 override next(): IteratorResult<string> 24} 25 26declare class C { 27 private y: string[]; 28 29 [Symbol.iterator](): CIterator 30} 31 32function main(): void { 33 34 let c = new C(); 35 let i: int = 0; 36 37 for (let it of c) { 38 it += ": in for"; 39 40 if (i == 0) { 41 assert(it == "one: in for"); 42 } else if (i == 1) { 43 assert(it == "two: in for") 44 } else if (i == 2) { 45 assert(it == "three: in for") 46 } else { 47 assert(false); 48 } 49 50 ++i; 51 } 52}