@@ -3352,8 +3352,6 @@ namespace ts {
33523352 getObjectFlags(type) & ObjectFlags.Anonymous &&
33533353 type.symbol && type.symbol.flags & SymbolFlags.Class;
33543354 if (isConstructorObject) {
3355- // TODO: something needs to issue accessibility errors (here, I think)
3356- // before writing a literal type that flattens base types, check that the base types are accessible
33573355 writeLiteralType(type, flags);
33583356 }
33593357 else {
@@ -3479,10 +3477,13 @@ namespace ts {
34793477 buildIndexSignatureDisplay(resolved.stringIndexInfo, writer, IndexKind.String, enclosingDeclaration, globalFlags, symbolStack);
34803478 buildIndexSignatureDisplay(resolved.numberIndexInfo, writer, IndexKind.Number, enclosingDeclaration, globalFlags, symbolStack);
34813479 for (const p of resolved.properties) {
3482- if (globalFlags & TypeFormatFlags.WriteClassExpressionAsTypeLiteral &&
3483- (p.name === "prototype" ||
3484- getDeclarationModifierFlagsFromSymbol(p) & (ModifierFlags.Private | ModifierFlags.Protected))) {
3485- continue;
3480+ if (globalFlags & TypeFormatFlags.WriteClassExpressionAsTypeLiteral) {
3481+ if (p.flags & SymbolFlags.Prototype) {
3482+ continue;
3483+ }
3484+ if (getDeclarationModifierFlagsFromSymbol(p) & (ModifierFlags.Private | ModifierFlags.Protected)) {
3485+ writer.reportPrivateInBaseOfClassExpression(p.name);
3486+ }
34863487 }
34873488 const t = getTypeOfSymbol(p);
34883489 if (p.flags & (SymbolFlags.Function | SymbolFlags.Method) && !getPropertiesOfObjectType(t).length) {
0 commit comments