Skip to content

Commit 088ca88

Browse files
committed
Revert condition inside shouldWriteTypeOfFunctionSymbol
1 parent 44c2453 commit 088ca88

File tree

4 files changed

+116
-10
lines changed

4 files changed

+116
-10
lines changed

src/compiler/checker.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1036,10 +1036,8 @@ module ts {
10361036
(type.symbol.parent || // is exported function symbol
10371037
ts.forEach(type.symbol.declarations, declaration =>
10381038
declaration.parent.kind === SyntaxKind.SourceFile || declaration.parent.kind === SyntaxKind.ModuleBlock));
1039-
if (isStaticMethodSymbol) {
1040-
return false;
1041-
}
1042-
if (isNonLocalFunctionSymbol) {
1039+
1040+
if (isStaticMethodSymbol || isNonLocalFunctionSymbol) {
10431041
// typeof is allowed only for static/non local functions
10441042
return !!(flags & TypeFormatFlags.UseTypeOfFunction) || // use typeof if format flags specify it
10451043
(typeStack && contains(typeStack, type)); // it is type of the symbol uses itself recursively

tests/baselines/reference/commentsClassMembers.js

Lines changed: 110 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -557,11 +557,11 @@ declare var i1_ncf: (b: number) => number;
557557
declare var i1_ncr: number;
558558
declare var i1_ncprop: number;
559559
declare var i1_s_p: number;
560-
declare var i1_s_f: (b: number) => number;
560+
declare var i1_s_f: typeof s2;
561561
declare var i1_s_r: number;
562562
declare var i1_s_prop: number;
563563
declare var i1_s_nc_p: number;
564-
declare var i1_s_ncf: (b: number) => number;
564+
declare var i1_s_ncf: typeof nc_s2;
565565
declare var i1_s_ncr: number;
566566
declare var i1_s_ncprop: number;
567567
declare var i1_c: typeof c1;
@@ -577,3 +577,111 @@ declare class cProperties {
577577
private y;
578578
}
579579
declare var cProperties_i: cProperties;
580+
581+
582+
//// [DtsFileErrors]
583+
584+
585+
==== tests/cases/compiler/commentsClassMembers.d.ts (2 errors) ====
586+
/** This is comment for c1*/
587+
declare class c1 {
588+
/** p1 is property of c1*/
589+
p1: number;
590+
/** sum with property*/
591+
p2(/** number to add*/ b: number): number;
592+
/** getter property*/
593+
/** setter property*/
594+
p3: number;
595+
/** pp1 is property of c1*/
596+
private pp1;
597+
/** sum with property*/
598+
private pp2(/** number to add*/ b);
599+
/** getter property*/
600+
/** setter property*/
601+
private pp3;
602+
/** Constructor method*/
603+
constructor();
604+
/** s1 is static property of c1*/
605+
static s1: number;
606+
/** static sum with property*/
607+
static s2(/** number to add*/ b: number): number;
608+
/** static getter property*/
609+
/** setter property*/
610+
static s3: number;
611+
nc_p1: number;
612+
nc_p2(b: number): number;
613+
nc_p3: number;
614+
private nc_pp1;
615+
private nc_pp2(b);
616+
private nc_pp3;
617+
static nc_s1: number;
618+
static nc_s2(b: number): number;
619+
static nc_s3: number;
620+
a_p1: number;
621+
a_p2(b: number): number;
622+
a_p3: number;
623+
private a_pp1;
624+
private a_pp2(b);
625+
private a_pp3;
626+
static a_s1: number;
627+
static a_s2(b: number): number;
628+
static a_s3: number;
629+
/** p1 is property of c1 */
630+
b_p1: number;
631+
/** sum with property */
632+
b_p2(b: number): number;
633+
/** getter property */
634+
/** setter property */
635+
b_p3: number;
636+
/** pp1 is property of c1 */
637+
private b_pp1;
638+
/** sum with property */
639+
private b_pp2(b);
640+
/** getter property */
641+
/** setter property */
642+
private b_pp3;
643+
/** s1 is static property of c1 */
644+
static b_s1: number;
645+
/** static sum with property */
646+
static b_s2(b: number): number;
647+
/** static getter property
648+
*/
649+
/** setter property
650+
*/
651+
static b_s3: number;
652+
}
653+
declare var i1: c1;
654+
declare var i1_p: number;
655+
declare var i1_f: (b: number) => number;
656+
declare var i1_r: number;
657+
declare var i1_prop: number;
658+
declare var i1_nc_p: number;
659+
declare var i1_ncf: (b: number) => number;
660+
declare var i1_ncr: number;
661+
declare var i1_ncprop: number;
662+
declare var i1_s_p: number;
663+
declare var i1_s_f: typeof s2;
664+
~~
665+
!!! Cannot find name 's2'.
666+
declare var i1_s_r: number;
667+
declare var i1_s_prop: number;
668+
declare var i1_s_nc_p: number;
669+
declare var i1_s_ncf: typeof nc_s2;
670+
~~~~~
671+
!!! Cannot find name 'nc_s2'.
672+
declare var i1_s_ncr: number;
673+
declare var i1_s_ncprop: number;
674+
declare var i1_c: typeof c1;
675+
declare class cProperties {
676+
private val;
677+
/** getter only property*/
678+
p1: number;
679+
nc_p1: number;
680+
/**setter only property*/
681+
p2: number;
682+
nc_p2: number;
683+
x: number;
684+
private y;
685+
}
686+
declare var cProperties_i: cProperties;
687+

tests/baselines/reference/recursiveFunctionTypes.errors.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
}
3636
C.g(3); // error
3737
~
38-
!!! Argument of type 'number' is not assignable to parameter of type '(t: any) => void'.
38+
!!! Argument of type 'number' is not assignable to parameter of type '(t: typeof g) => void'.
3939

4040
var f4: () => typeof f4;
4141
f4 = 3; // error

tests/baselines/reference/recursiveFunctionTypes1.types

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ class C {
33
>C : C
44

55
static g(t: typeof C.g){ }
6-
>g : (t: any) => void
7-
>t : (t: any) => void
6+
>g : (t: typeof g) => void
7+
>t : (t: typeof g) => void
88
>C : typeof C
9-
>g : (t: any) => void
9+
>g : (t: typeof g) => void
1010
}

0 commit comments

Comments
 (0)