1/* 2* Copyright (c) Microsoft Corporation. All rights reserved. 3* Copyright (c) 2023 Huawei Device Co., Ltd. 4* Licensed under the Apache License, Version 2.0 (the "License"); 5* you may not use this file except in compliance with the License. 6* You may obtain a copy of the License at 7* 8* http://www.apache.org/licenses/LICENSE-2.0 9* 10* Unless required by applicable law or agreed to in writing, software 11* distributed under the License is distributed on an "AS IS" BASIS, 12* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13* See the License for the specific language governing permissions and 14* limitations under the License. 15* 16* This file has been modified by Huawei to verify type inference by adding verification statements. 17*/ 18 19// === tests/cases/conformance/classes/constructorDeclarations/quotedConstructors.ts === 20declare function AssertType(value:any, type:string):void; 21class C { 22 "constructor"() { 23 console.log(this); 24AssertType(console.log(this), "void"); 25AssertType(console.log, "(...any[]) => void"); 26AssertType(this, "this"); 27 } 28} 29 30class D { 31 'constructor'() { 32 console.log(this); 33AssertType(console.log(this), "void"); 34AssertType(console.log, "(...any[]) => void"); 35AssertType(this, "this"); 36 } 37} 38 39class E { 40 ['constructor']() { 41 console.log(this); 42AssertType(console.log(this), "void"); 43AssertType(console.log, "(...any[]) => void"); 44AssertType(this, "this"); 45 } 46} 47 48new class { 49AssertType(new class { "constructor"() { console.log(this); }}, "(Anonymous class)"); 50AssertType(class { "constructor"() { console.log(this); }}, "typeof (Anonymous class)"); 51 52 "constructor"() { 53 console.log(this); 54AssertType(console.log(this), "void"); 55AssertType(console.log, "(...any[]) => void"); 56AssertType(this, "this"); 57 } 58}; 59 60let o = { "constructor"() {} }; 61AssertType(o, "{ constructor(): void; }"); 62AssertType({ "constructor"() {} }, "{ constructor(): void; }"); 63AssertType("constructor", "() => void"); 64 65class F { 66 "\x63onstructor"() { 67 console.log(this); 68AssertType(console.log(this), "void"); 69AssertType(console.log, "(...any[]) => void"); 70AssertType(this, "this"); 71 } 72} 73 74 75