Skip to content

Commit cb6dd18

Browse files
committed
Merge pull request microsoft#6702 from Microsoft/readonlyInDeclarationFiles2
Readonly in declaration files (part 2)
2 parents 2ef6f13 + c00d239 commit cb6dd18

18 files changed

Lines changed: 354 additions & 96 deletions

src/compiler/declarationEmitter.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -637,21 +637,21 @@ namespace ts {
637637
}
638638
}
639639

640-
function emitClassMemberDeclarationFlags(node: Declaration) {
641-
if (node.flags & NodeFlags.Private) {
640+
function emitClassMemberDeclarationFlags(flags: NodeFlags) {
641+
if (flags & NodeFlags.Private) {
642642
write("private ");
643643
}
644-
else if (node.flags & NodeFlags.Protected) {
644+
else if (flags & NodeFlags.Protected) {
645645
write("protected ");
646646
}
647647

648-
if (node.flags & NodeFlags.Static) {
648+
if (flags & NodeFlags.Static) {
649649
write("static ");
650650
}
651-
if (node.flags & NodeFlags.Readonly) {
651+
if (flags & NodeFlags.Readonly) {
652652
write("readonly ");
653653
}
654-
if (node.flags & NodeFlags.Abstract) {
654+
if (flags & NodeFlags.Abstract) {
655655
write("abstract ");
656656
}
657657
}
@@ -1077,7 +1077,7 @@ namespace ts {
10771077
}
10781078

10791079
emitJsDocComments(node);
1080-
emitClassMemberDeclarationFlags(node);
1080+
emitClassMemberDeclarationFlags(node.flags);
10811081
emitVariableDeclaration(<VariableDeclaration>node);
10821082
write(";");
10831083
writeLine();
@@ -1230,7 +1230,7 @@ namespace ts {
12301230
if (node === accessors.firstAccessor) {
12311231
emitJsDocComments(accessors.getAccessor);
12321232
emitJsDocComments(accessors.setAccessor);
1233-
emitClassMemberDeclarationFlags(node);
1233+
emitClassMemberDeclarationFlags(node.flags | (accessors.setAccessor ? 0 : NodeFlags.Readonly));
12341234
writeTextOfNode(currentText, node.name);
12351235
if (!(node.flags & NodeFlags.Private)) {
12361236
accessorWithTypeAnnotation = node;
@@ -1317,7 +1317,7 @@ namespace ts {
13171317
emitModuleElementDeclarationFlags(node);
13181318
}
13191319
else if (node.kind === SyntaxKind.MethodDeclaration) {
1320-
emitClassMemberDeclarationFlags(node);
1320+
emitClassMemberDeclarationFlags(node.flags);
13211321
}
13221322
if (node.kind === SyntaxKind.FunctionDeclaration) {
13231323
write("function ");
@@ -1347,7 +1347,7 @@ namespace ts {
13471347

13481348
if (node.kind === SyntaxKind.IndexSignature) {
13491349
// Index signature can have readonly modifier
1350-
emitClassMemberDeclarationFlags(node);
1350+
emitClassMemberDeclarationFlags(node.flags);
13511351
write("[");
13521352
}
13531353
else {

tests/baselines/reference/classdecl.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -211,12 +211,12 @@ declare class a {
211211
pgF(): void;
212212
pv: any;
213213
d: number;
214-
static p2: {
214+
static readonly p2: {
215215
x: number;
216216
y: number;
217217
};
218218
private static d2();
219-
private static p3;
219+
private static readonly p3;
220220
private pv3;
221221
private foo(n);
222222
private foo(s);

tests/baselines/reference/commentsClassMembers.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -568,8 +568,8 @@ declare var i1_c: typeof c1;
568568
declare class cProperties {
569569
private val;
570570
/** getter only property*/
571-
p1: number;
572-
nc_p1: number;
571+
readonly p1: number;
572+
readonly nc_p1: number;
573573
/**setter only property*/
574574
p2: number;
575575
nc_p2: number;

tests/baselines/reference/commentsInheritance.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -316,19 +316,19 @@ declare class c2 {
316316
/** c2 c2_f1*/
317317
c2_f1(): void;
318318
/** c2 c2_prop*/
319-
c2_prop: number;
319+
readonly c2_prop: number;
320320
c2_nc_p1: number;
321321
c2_nc_f1(): void;
322-
c2_nc_prop: number;
322+
readonly c2_nc_prop: number;
323323
/** c2 p1*/
324324
p1: number;
325325
/** c2 f1*/
326326
f1(): void;
327327
/** c2 prop*/
328-
prop: number;
328+
readonly prop: number;
329329
nc_p1: number;
330330
nc_f1(): void;
331-
nc_prop: number;
331+
readonly nc_prop: number;
332332
/** c2 constructor*/
333333
constructor(a: number);
334334
}
@@ -339,10 +339,10 @@ declare class c3 extends c2 {
339339
/** c3 f1*/
340340
f1(): void;
341341
/** c3 prop*/
342-
prop: number;
342+
readonly prop: number;
343343
nc_p1: number;
344344
nc_f1(): void;
345-
nc_prop: number;
345+
readonly nc_prop: number;
346346
}
347347
declare var c2_i: c2;
348348
declare var c3_i: c3;

tests/baselines/reference/declFileAccessors.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,7 @@ export declare class c1 {
284284
nc_p3: number;
285285
private nc_pp3;
286286
static nc_s3: string;
287-
onlyGetter: number;
287+
readonly onlyGetter: number;
288288
onlySetter: number;
289289
}
290290
//// [declFileAccessors_1.d.ts]
@@ -302,6 +302,6 @@ declare class c2 {
302302
nc_p3: number;
303303
private nc_pp3;
304304
static nc_s3: string;
305-
onlyGetter: number;
305+
readonly onlyGetter: number;
306306
onlySetter: number;
307307
}

tests/baselines/reference/declFilePrivateStatic.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ declare class C {
5252
static y: number;
5353
private static a();
5454
static b(): void;
55-
private static c;
56-
static d: number;
55+
private static readonly c;
56+
static readonly d: number;
5757
private static e;
5858
static f: any;
5959
}

tests/baselines/reference/declarationEmit_protectedMembers.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ declare class C1 {
135135
protected static sx: number;
136136
protected static sf(): number;
137137
protected static staticSetter: number;
138-
protected static staticGetter: number;
138+
protected static readonly staticGetter: number;
139139
}
140140
declare class C2 extends C1 {
141141
protected f(): number;
@@ -146,7 +146,7 @@ declare class C3 extends C2 {
146146
static sx: number;
147147
f(): number;
148148
static sf(): number;
149-
static staticGetter: number;
149+
static readonly staticGetter: number;
150150
}
151151
declare class C4 {
152152
protected a: number;

tests/baselines/reference/giant.js

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1120,19 +1120,19 @@ export declare class eC {
11201120
pF(): void;
11211121
private rF();
11221122
pgF(): void;
1123-
pgF: any;
1123+
readonly pgF: any;
11241124
psF(param: any): void;
11251125
psF: any;
11261126
private rgF();
1127-
private rgF;
1127+
private readonly rgF;
11281128
private rsF(param);
11291129
private rsF;
11301130
static tV: any;
11311131
static tF(): void;
11321132
static tsF(param: any): void;
11331133
static tsF: any;
11341134
static tgF(): void;
1135-
static tgF: any;
1135+
static readonly tgF: any;
11361136
}
11371137
export interface eI {
11381138
(): any;
@@ -1172,19 +1172,19 @@ export declare module eM {
11721172
pF(): void;
11731173
private rF();
11741174
pgF(): void;
1175-
pgF: any;
1175+
readonly pgF: any;
11761176
psF(param: any): void;
11771177
psF: any;
11781178
private rgF();
1179-
private rgF;
1179+
private readonly rgF;
11801180
private rsF(param);
11811181
private rsF;
11821182
static tV: any;
11831183
static tF(): void;
11841184
static tsF(param: any): void;
11851185
static tsF: any;
11861186
static tgF(): void;
1187-
static tgF: any;
1187+
static readonly tgF: any;
11881188
}
11891189
interface eI {
11901190
(): any;
@@ -1239,19 +1239,19 @@ export declare module eM {
12391239
pF(): void;
12401240
private rF();
12411241
pgF(): void;
1242-
pgF: any;
1242+
readonly pgF: any;
12431243
psF(param: any): void;
12441244
psF: any;
12451245
private rgF();
1246-
private rgF;
1246+
private readonly rgF;
12471247
private rsF(param);
12481248
private rsF;
12491249
static tV: any;
12501250
static tF(): void;
12511251
static tsF(param: any): void;
12521252
static tsF: any;
12531253
static tgF(): void;
1254-
static tgF: any;
1254+
static readonly tgF: any;
12551255
}
12561256
module eaM {
12571257
var V: any;
@@ -1281,19 +1281,19 @@ export declare class eaC {
12811281
pF(): void;
12821282
private rF();
12831283
pgF(): void;
1284-
pgF: any;
1284+
readonly pgF: any;
12851285
psF(param: any): void;
12861286
psF: any;
12871287
private rgF();
1288-
private rgF;
1288+
private readonly rgF;
12891289
private rsF(param);
12901290
private rsF;
12911291
static tV: any;
12921292
static tF(): void;
12931293
static tsF(param: any): void;
12941294
static tsF: any;
12951295
static tgF(): void;
1296-
static tgF: any;
1296+
static readonly tgF: any;
12971297
}
12981298
export declare module eaM {
12991299
var V: any;

tests/baselines/reference/isDeclarationVisibleNodeKinds.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ declare module schema {
193193
}
194194
declare module schema {
195195
class T {
196-
createValidator9: <T>(data: T) => T;
196+
readonly createValidator9: <T>(data: T) => T;
197197
createValidator10: <T>(data: T) => T;
198198
}
199199
}

tests/baselines/reference/moduledecl.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -459,10 +459,10 @@ declare module exportTests {
459459
class C3_public {
460460
private getC2_private();
461461
private setC2_private(arg);
462-
private c2;
462+
private readonly c2;
463463
getC1_public(): C1_public;
464464
setC1_public(arg: C1_public): void;
465-
c1: C1_public;
465+
readonly c1: C1_public;
466466
}
467467
}
468468
declare module mAmbient {

0 commit comments

Comments
 (0)