diff --git a/src/compiler/types.ts b/src/compiler/types.ts index c5d434072d2..4c72270a395 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -5161,7 +5161,7 @@ namespace ts { VariableDeclarationList = CommaDelimited | SpaceBetweenSiblings | SingleLine, SingleLineFunctionBodyStatements = SingleLine | SpaceBetweenSiblings | SpaceBetweenBraces, MultiLineFunctionBodyStatements = MultiLine, - ClassHeritageClauses = SingleLine | SpaceBetweenSiblings, + ClassHeritageClauses = SingleLine, ClassMembers = Indented | MultiLine, InterfaceMembers = Indented | MultiLine, EnumMembers = CommaDelimited | Indented | MultiLine, diff --git a/src/harness/unittests/printer.ts b/src/harness/unittests/printer.ts index 0f6a2ea3474..69b8f011626 100644 --- a/src/harness/unittests/printer.ts +++ b/src/harness/unittests/printer.ts @@ -62,6 +62,12 @@ namespace ts { // github #18071 printsCorrectly("regularExpressionLiteral", {}, printer => printer.printFile(createSourceFile("source.ts", "let regex = /abc/;", ScriptTarget.ES2017))); + + printsCorrectly("classHeritageClauses", {}, printer => printer.printFile(createSourceFile( + "source.ts", + `class A extends B implements C implements D {}`, + ScriptTarget.ES2017 + ))); }); describe("printBundle", () => { diff --git a/tests/baselines/reference/api/tsserverlibrary.d.ts b/tests/baselines/reference/api/tsserverlibrary.d.ts index ed9ac13c3eb..656ea20257d 100644 --- a/tests/baselines/reference/api/tsserverlibrary.d.ts +++ b/tests/baselines/reference/api/tsserverlibrary.d.ts @@ -2823,7 +2823,7 @@ declare namespace ts { VariableDeclarationList = 272, SingleLineFunctionBodyStatements = 384, MultiLineFunctionBodyStatements = 1, - ClassHeritageClauses = 256, + ClassHeritageClauses = 0, ClassMembers = 65, InterfaceMembers = 65, EnumMembers = 81, diff --git a/tests/baselines/reference/api/typescript.d.ts b/tests/baselines/reference/api/typescript.d.ts index 3af5746213e..c6675987efe 100644 --- a/tests/baselines/reference/api/typescript.d.ts +++ b/tests/baselines/reference/api/typescript.d.ts @@ -2823,7 +2823,7 @@ declare namespace ts { VariableDeclarationList = 272, SingleLineFunctionBodyStatements = 384, MultiLineFunctionBodyStatements = 1, - ClassHeritageClauses = 256, + ClassHeritageClauses = 0, ClassMembers = 65, InterfaceMembers = 65, EnumMembers = 81, diff --git a/tests/baselines/reference/declFileGenericType2.js b/tests/baselines/reference/declFileGenericType2.js index ad9ec95d700..05424d0d024 100644 --- a/tests/baselines/reference/declFileGenericType2.js +++ b/tests/baselines/reference/declFileGenericType2.js @@ -117,7 +117,7 @@ declare module templa.dom.mvc { } } declare module templa.dom.mvc { - class AbstractElementController extends templa.mvc.AbstractController implements IElementController { + class AbstractElementController extends templa.mvc.AbstractController implements IElementController { constructor(); } } diff --git a/tests/baselines/reference/printerApi/printsFileCorrectly.classHeritageClauses.js b/tests/baselines/reference/printerApi/printsFileCorrectly.classHeritageClauses.js new file mode 100644 index 00000000000..2782752276c --- /dev/null +++ b/tests/baselines/reference/printerApi/printsFileCorrectly.classHeritageClauses.js @@ -0,0 +1,2 @@ +class A extends B implements C implements D { +}