13af6ab5fSopenharmony_ci/*
23af6ab5fSopenharmony_ci * Copyright (c) 2023-2024 Huawei Device Co., Ltd.
33af6ab5fSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
43af6ab5fSopenharmony_ci * you may not use this file except in compliance with the License.
53af6ab5fSopenharmony_ci * You may obtain a copy of the License at
63af6ab5fSopenharmony_ci *
73af6ab5fSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0
83af6ab5fSopenharmony_ci *
93af6ab5fSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
103af6ab5fSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
113af6ab5fSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
123af6ab5fSopenharmony_ci * See the License for the specific language governing permissions and
133af6ab5fSopenharmony_ci * limitations under the License.
143af6ab5fSopenharmony_ci */
153af6ab5fSopenharmony_ci
163af6ab5fSopenharmony_ci// @ts-ignore
173af6ab5fSopenharmony_cilet x: number = null; // No error, type checking is suppressed
183af6ab5fSopenharmony_cilet y: number = null; // Compile-time error
193af6ab5fSopenharmony_ci
203af6ab5fSopenharmony_ciif (false) {
213af6ab5fSopenharmony_ci  /* @ts-ignore: Unreachable code error */
223af6ab5fSopenharmony_ci  console.log("hello");
233af6ab5fSopenharmony_ci}
243af6ab5fSopenharmony_ci
253af6ab5fSopenharmony_cilet a: number = 0 // @ts-ignore: suppresses CTE for the next line
263af6ab5fSopenharmony_cilet b: number = null;
273af6ab5fSopenharmony_ci
283af6ab5fSopenharmony_ci
293af6ab5fSopenharmony_ci
303af6ab5fSopenharmony_ci        // @ts-expect-error
313af6ab5fSopenharmony_ciconsole.log("Hello" * 42);
323af6ab5fSopenharmony_ci
333af6ab5fSopenharmony_ci /*
343af6ab5fSopenharmony_ci @ts-expect-error (shouldn't be reported)
353af6ab5fSopenharmony_ci*/
363af6ab5fSopenharmony_ciconsole.log("Hello" * 42);
373af6ab5fSopenharmony_ci
383af6ab5fSopenharmony_ci// no @ts-expect-error (shouldn't be reported)
393af6ab5fSopenharmony_ciconsole.log("Hello" * 42);
403af6ab5fSopenharmony_ci
413af6ab5fSopenharmony_ciconst l1 = (): void => {
423af6ab5fSopenharmony_ci    let l2 = () => {
433af6ab5fSopenharmony_ci        // @ts-expect-error
443af6ab5fSopenharmony_ci        console.log("Hello" * 42);
453af6ab5fSopenharmony_ci    }
463af6ab5fSopenharmony_ci    l2();
473af6ab5fSopenharmony_ci}
483af6ab5fSopenharmony_ci
493af6ab5fSopenharmony_cil1();
503af6ab5fSopenharmony_ci
513af6ab5fSopenharmony_ciclass SomeClass {
523af6ab5fSopenharmony_ci  // @ts-ignore
533af6ab5fSopenharmony_ci  static readonly m1;
543af6ab5fSopenharmony_ci
553af6ab5fSopenharmony_ci  methodError(param: any) {
563af6ab5fSopenharmony_ci        // @ts-expect-error
573af6ab5fSopenharmony_ci        console.log("Hello" * param);
583af6ab5fSopenharmony_ci        // @ts-ignore
593af6ab5fSopenharmony_ci        let nns: String = null;
603af6ab5fSopenharmony_ci  }
613af6ab5fSopenharmony_ci}
623af6ab5fSopenharmony_ci
633af6ab5fSopenharmony_ciclass ChainedCallsClass {
643af6ab5fSopenharmony_ci    methodOne(): ChainedCallsClass {
653af6ab5fSopenharmony_ci        return this;
663af6ab5fSopenharmony_ci    }
673af6ab5fSopenharmony_ci
683af6ab5fSopenharmony_ci    methodTwo(): ChainedCallsClass {
693af6ab5fSopenharmony_ci        return this;
703af6ab5fSopenharmony_ci    }
713af6ab5fSopenharmony_ci}
723af6ab5fSopenharmony_ci
733af6ab5fSopenharmony_ci// Issue 13972
743af6ab5fSopenharmony_cilet cc = new ChainedCallsClass()
753af6ab5fSopenharmony_ci// @ts-ignore
763af6ab5fSopenharmony_ci.methodOne().methodTwo();
773af6ab5fSopenharmony_ci
783af6ab5fSopenharmony_ci// #14305
793af6ab5fSopenharmony_ci/*
803af6ab5fSopenharmony_ci@ts-ignore (shouldn't be reported)
813af6ab5fSopenharmony_ci */
823af6ab5fSopenharmony_cilet c: number = '1';
833af6ab5fSopenharmony_ci
843af6ab5fSopenharmony_ci/*
853af6ab5fSopenharmony_ci @ts-ignore (shouldn't be reported)
863af6ab5fSopenharmony_ci */
873af6ab5fSopenharmony_cilet d: number = '1';