@@ -12,7 +12,7 @@ namespace ts.codefix {
12
12
const info = getInfo ( context . sourceFile , context . span . start , context . program . getTypeChecker ( ) ) ;
13
13
if ( ! info ) return undefined ;
14
14
15
- if ( info . kind === InfoKind . enum ) {
15
+ if ( info . parentDeclaration ) {
16
16
const { token, parentDeclaration } = info ;
17
17
const changes = textChanges . ChangeTracker . with ( context , t => addEnumMemberDeclaration ( t , context . program . getTypeChecker ( ) , token , parentDeclaration ) ) ;
18
18
return [ createCodeFixAction ( fixName , changes , [ Diagnostics . Add_missing_enum_member_0 , token . text ] , fixId , Diagnostics . Add_all_missing_members ) ] ;
@@ -39,7 +39,7 @@ namespace ts.codefix {
39
39
return ;
40
40
}
41
41
42
- if ( info . kind === InfoKind . enum ) {
42
+ if ( info . kind === InfoKind . Enum ) {
43
43
const { token, parentDeclaration } = info ;
44
44
addEnumMemberDeclaration ( changes , checker , token , parentDeclaration ) ;
45
45
}
@@ -93,18 +93,13 @@ namespace ts.codefix {
93
93
}
94
94
95
95
type ClassOrInterface = ClassLikeDeclaration | InterfaceDeclaration ;
96
- interface InfoBase {
97
- readonly kind : InfoKind ;
96
+ const enum InfoKind { Enum , ClassOrInterface }
97
+ interface EnumInfo {
98
98
readonly token : Identifier ;
99
- readonly parentDeclaration : EnumDeclaration | ClassOrInterface ;
100
- }
101
- enum InfoKind { enum , class }
102
- interface EnumInfo extends InfoBase {
103
- readonly kind : InfoKind . enum ;
104
99
readonly parentDeclaration : EnumDeclaration ;
105
100
}
106
- interface ClassOrInterfaceInfo extends InfoBase {
107
- readonly kind : InfoKind . class ;
101
+ interface ClassOrInterfaceInfo {
102
+ readonly token : Identifier ;
108
103
readonly parentDeclaration : ClassOrInterface ;
109
104
readonly makeStatic : boolean ;
110
105
readonly declSourceFile : SourceFile ;
@@ -136,11 +131,11 @@ namespace ts.codefix {
136
131
const declSourceFile = classOrInterface . getSourceFile ( ) ;
137
132
const inJs = isSourceFileJavaScript ( declSourceFile ) ;
138
133
const call = tryCast ( parent . parent , isCallExpression ) ;
139
- return { kind : InfoKind . class , token, parentDeclaration : classOrInterface , makeStatic, declSourceFile, inJs, call } ;
134
+ return { kind : InfoKind . ClassOrInterface , token, parentDeclaration : classOrInterface , makeStatic, declSourceFile, inJs, call } ;
140
135
}
141
136
const enumDeclaration = find ( symbol . declarations , isEnumDeclaration ) ;
142
137
if ( enumDeclaration ) {
143
- return { kind : InfoKind . enum , token, parentDeclaration : enumDeclaration } ;
138
+ return { kind : InfoKind . Enum , token, parentDeclaration : enumDeclaration } ;
144
139
}
145
140
return undefined ;
146
141
}
0 commit comments