fix(typescript): break on multiple interface extends, fixes #2043 (#2085)

This commit is contained in:
Lucas Azzola authored and Christopher Chedeau committed 2017-06-10 07:46:59 -07:00
1 parent f7819d5695
commit 1e08f03554
3 files changed
+82 -1

No files matched your search

+12 -1
View File
@@ -826,7 +826,18 @@ function genericPrintNoParens(path, options, print, args) {
);
if (n.heritage.length) {
parts.push("extends ", join(", ", path.map(print, "heritage")), " ");
parts.push(
group(
indent(
concat([
softline,
"extends ",
indent(join(concat([",", line]), path.map(print, "heritage"))),
" "
])
)
)
);
}
parts.push(path.call(print, "body"));
@@ -22,6 +22,57 @@ interface ScreenObject {
`;
exports[`long-extends.ts 1`] = `
export interface I extends A, B, C {
c: string;
}
export interface ThirdVeryLongAndBoringInterfaceName extends ALongAndBoringInterfaceName {
c: string;
}
export interface ThirdVeryLongAndBoringInterfaceName extends ALongAndBoringInterfaceName, AnotherLongAndBoringInterfaceName {
c: string;
}
export interface ThirdVeryLongAndBoringInterfaceName extends AVeryLongAndBoringInterfaceName, AnotherVeryLongAndBoringInterfaceName {
c: string;
}
export interface ThirdVeryLongAndBoringInterfaceName extends A_AVeryLongAndBoringInterfaceName, B_AVeryLongAndBoringInterfaceName, C_AVeryLongAndBoringInterfaceName {
c: string;
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
export interface I extends A, B, C {
c: string;
}
export interface ThirdVeryLongAndBoringInterfaceName
extends ALongAndBoringInterfaceName {
c: string;
}
export interface ThirdVeryLongAndBoringInterfaceName
extends ALongAndBoringInterfaceName,
AnotherLongAndBoringInterfaceName {
c: string;
}
export interface ThirdVeryLongAndBoringInterfaceName
extends AVeryLongAndBoringInterfaceName,
AnotherVeryLongAndBoringInterfaceName {
c: string;
}
export interface ThirdVeryLongAndBoringInterfaceName
extends A_AVeryLongAndBoringInterfaceName,
B_AVeryLongAndBoringInterfaceName,
C_AVeryLongAndBoringInterfaceName {
c: string;
}
`;
exports[`separator.ts 1`] = `
declare module 'selenium-webdriver' {
export const until: {
@@ -0,0 +1,19 @@
export interface I extends A, B, C {
c: string;
}
export interface ThirdVeryLongAndBoringInterfaceName extends ALongAndBoringInterfaceName {
c: string;
}
export interface ThirdVeryLongAndBoringInterfaceName extends ALongAndBoringInterfaceName, AnotherLongAndBoringInterfaceName {
c: string;
}
export interface ThirdVeryLongAndBoringInterfaceName extends AVeryLongAndBoringInterfaceName, AnotherVeryLongAndBoringInterfaceName {
c: string;
}
export interface ThirdVeryLongAndBoringInterfaceName extends A_AVeryLongAndBoringInterfaceName, B_AVeryLongAndBoringInterfaceName, C_AVeryLongAndBoringInterfaceName {
c: string;
}