From 43948a01709b554868707b8ec74cc08658cf87b7 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Wed, 7 Dec 2016 16:24:06 +0300 Subject: [PATCH] Wrap options for constructor parameters #KT-12176 In Progress --- .../idea/formatter/KotlinCommonBlock.kt | 18 ++-- .../ParameterListChopAsNeeded.after.kt | 98 ++++++++++++++++++- .../ParameterListChopAsNeeded.kt | 46 ++++++++- .../ParameterListDoNotWrap.after.kt | 46 ++++++++- .../parameterList/ParameterListDoNotWrap.kt | 46 ++++++++- .../ParameterListWrapAlways.after.kt | 97 +++++++++++++++++- .../parameterList/ParameterListWrapAlways.kt | 46 ++++++++- .../ParameterListWrapAsNeeded.after.kt | 94 +++++++++++++++++- .../ParameterListWrapAsNeeded.kt | 46 ++++++++- 9 files changed, 522 insertions(+), 15 deletions(-) diff --git a/idea/formatter/src/org/jetbrains/kotlin/idea/formatter/KotlinCommonBlock.kt b/idea/formatter/src/org/jetbrains/kotlin/idea/formatter/KotlinCommonBlock.kt index e29f21dcad8..54cd5eed396 100644 --- a/idea/formatter/src/org/jetbrains/kotlin/idea/formatter/KotlinCommonBlock.kt +++ b/idea/formatter/src/org/jetbrains/kotlin/idea/formatter/KotlinCommonBlock.kt @@ -297,13 +297,17 @@ abstract class KotlinCommonBlock( val commonSettings = settings.getCommonSettings(KotlinLanguage.INSTANCE) val elementType = node.elementType - if (elementType === KtNodeTypes.VALUE_ARGUMENT_LIST) { - return getWrappingStrategyForItemList(commonSettings.CALL_PARAMETERS_WRAP, KtNodeTypes.VALUE_ARGUMENT) - } - if (elementType === KtNodeTypes.VALUE_PARAMETER_LIST) { - val parentElementType = node.treeParent.elementType - if (parentElementType === KtNodeTypes.FUN || parentElementType === KtNodeTypes.CLASS) { - return getWrappingStrategyForItemList(commonSettings.METHOD_PARAMETERS_WRAP, KtNodeTypes.VALUE_PARAMETER) + when { + elementType === KtNodeTypes.VALUE_ARGUMENT_LIST -> + return getWrappingStrategyForItemList(commonSettings.CALL_PARAMETERS_WRAP, KtNodeTypes.VALUE_ARGUMENT) + + elementType === KtNodeTypes.VALUE_PARAMETER_LIST -> { + val parentElementType = node.treeParent.elementType + if (parentElementType === KtNodeTypes.FUN || + parentElementType === KtNodeTypes.PRIMARY_CONSTRUCTOR || + parentElementType === KtNodeTypes.SECONDARY_CONSTRUCTOR) { + return getWrappingStrategyForItemList(commonSettings.METHOD_PARAMETERS_WRAP, KtNodeTypes.VALUE_PARAMETER) + } } } diff --git a/idea/testData/formatter/parameterList/ParameterListChopAsNeeded.after.kt b/idea/testData/formatter/parameterList/ParameterListChopAsNeeded.after.kt index 6bbc558a19c..cae295a237e 100644 --- a/idea/testData/formatter/parameterList/ParameterListChopAsNeeded.after.kt +++ b/idea/testData/formatter/parameterList/ParameterListChopAsNeeded.after.kt @@ -33,4 +33,100 @@ fun test() { } catch (barbarbarbarbar: Exception) { } -} \ No newline at end of file +} + +class LongLongLongLongNameCLass +class ShorName +class SN + +class A(longLongLongLongNameCLass1: LongLongLongLongNameCLass, + longLongLongLongNameCLass2: LongLongLongLongNameCLass, + longLongLongLongNameCLass3: LongLongLongLongNameCLass) { + constructor( + longLongLongLongNameCLass1: LongLongLongLongNameCLass, + longLongLongLongNameCLass2: LongLongLongLongNameCLass, + longLongLongLongNameCLass3: LongLongLongLongNameCLass) { + } +} + +class B(a: LongLongLongLongNameCLass, + b: LongLongLongLongNameCLass, + c: LongLongLongLongNameCLass) { + constructor(a: LongLongLongLongNameCLass, + b: LongLongLongLongNameCLass, + c: LongLongLongLongNameCLass) { + } +} + +class C(sn1: ShorName, + sn2: ShorName, + sn3: ShorName, + sn4: ShorName, + sn5: ShorName, + sn6: ShorName, + sn6: ShorName, + sn8: ShorName, + sn9: ShorName) { + constructor(sn1: ShorName, + sn2: ShorName, + sn3: ShorName, + sn4: ShorName, + sn5: ShorName, + sn6: ShorName, + sn6: ShorName, + sn8: ShorName, + sn9: ShorName) { + } +} + +class D(sn1: SN, + sn2: SN, + sn3: SN, + sn4: SN, + sn5: SN, + sn6: SN, + sn6: SN, + sn8: SN, + sn9: SN, + sn10: SN, + sn11: SN, + sn12: SN, + sn13: SN, + sn14: SN) { + constructor(sn1: SN, + sn2: SN, + sn3: SN, + sn4: SN, + sn5: SN, + sn6: SN, + sn6: SN, + sn8: SN, + sn9: SN, + sn10: SN, + sn11: SN, + sn12: SN, + sn13: SN, + sn14: SN) { + } +} + +class E(longLongLongLongNameCLass1: LongLongLongLongNameCLass) { + constructor( + longLongLongLongNameCLass1: LongLongLongLongNameCLass) { + } +} + +class F(a: LongLongLongLongNameCLass) { + constructor(a: LongLongLongLongNameCLass) { + } +} + +class G(sn1: ShorName) { + constructor(sn1: ShorName) { + } +} + +class H(sn1: SN, sn2: SN) { + constructor(sn1: SN) { + } +} diff --git a/idea/testData/formatter/parameterList/ParameterListChopAsNeeded.kt b/idea/testData/formatter/parameterList/ParameterListChopAsNeeded.kt index 324f038333c..3bcda722ffe 100644 --- a/idea/testData/formatter/parameterList/ParameterListChopAsNeeded.kt +++ b/idea/testData/formatter/parameterList/ParameterListChopAsNeeded.kt @@ -30,4 +30,48 @@ fun test() { } catch (barbarbarbarbar: Exception) { } -} \ No newline at end of file +} + +class LongLongLongLongNameCLass +class ShorName +class SN + +class A(longLongLongLongNameCLass1: LongLongLongLongNameCLass, longLongLongLongNameCLass2: LongLongLongLongNameCLass, longLongLongLongNameCLass3: LongLongLongLongNameCLass) { + constructor(longLongLongLongNameCLass1: LongLongLongLongNameCLass, longLongLongLongNameCLass2: LongLongLongLongNameCLass, longLongLongLongNameCLass3: LongLongLongLongNameCLass) { + } +} + +class B(a: LongLongLongLongNameCLass, b: LongLongLongLongNameCLass, c: LongLongLongLongNameCLass) { + constructor(a: LongLongLongLongNameCLass, b: LongLongLongLongNameCLass, c: LongLongLongLongNameCLass) { + } +} + +class C(sn1: ShorName, sn2 : ShorName, sn3 : ShorName, sn4 : ShorName, sn5 : ShorName, sn6 : ShorName, sn6 : ShorName, sn8 : ShorName, sn9 : ShorName) { + constructor(sn1: ShorName, sn2 : ShorName, sn3 : ShorName, sn4 : ShorName, sn5 : ShorName, sn6 : ShorName, sn6 : ShorName, sn8 : ShorName, sn9 : ShorName) { + } +} + +class D(sn1: SN, sn2 : SN, sn3 : SN, sn4 : SN, sn5 : SN, sn6 : SN, sn6 : SN, sn8 : SN, sn9 : SN, sn10: SN, sn11: SN, sn12: SN, sn13: SN, sn14: SN) { + constructor(sn1: SN, sn2 : SN, sn3 : SN, sn4 : SN, sn5 : SN, sn6 : SN, sn6 : SN, sn8 : SN, sn9 : SN, sn10: SN, sn11: SN, sn12: SN, sn13: SN, sn14: SN) { + } +} + +class E(longLongLongLongNameCLass1: LongLongLongLongNameCLass) { + constructor(longLongLongLongNameCLass1: LongLongLongLongNameCLass) { + } +} + +class F(a: LongLongLongLongNameCLass) { + constructor(a: LongLongLongLongNameCLass) { + } +} + +class G(sn1: ShorName) { + constructor(sn1: ShorName) { + } +} + +class H(sn1: SN, sn2 : SN) { + constructor(sn1: SN) { + } +} diff --git a/idea/testData/formatter/parameterList/ParameterListDoNotWrap.after.kt b/idea/testData/formatter/parameterList/ParameterListDoNotWrap.after.kt index 77701928fd0..910e6671c9b 100644 --- a/idea/testData/formatter/parameterList/ParameterListDoNotWrap.after.kt +++ b/idea/testData/formatter/parameterList/ParameterListDoNotWrap.after.kt @@ -30,4 +30,48 @@ fun test() { } catch (barbarbarbarbar: Exception) { } -} \ No newline at end of file +} + +class LongLongLongLongNameCLass +class ShorName +class SN + +class A(longLongLongLongNameCLass1: LongLongLongLongNameCLass, longLongLongLongNameCLass2: LongLongLongLongNameCLass, longLongLongLongNameCLass3: LongLongLongLongNameCLass) { + constructor(longLongLongLongNameCLass1: LongLongLongLongNameCLass, longLongLongLongNameCLass2: LongLongLongLongNameCLass, longLongLongLongNameCLass3: LongLongLongLongNameCLass) { + } +} + +class B(a: LongLongLongLongNameCLass, b: LongLongLongLongNameCLass, c: LongLongLongLongNameCLass) { + constructor(a: LongLongLongLongNameCLass, b: LongLongLongLongNameCLass, c: LongLongLongLongNameCLass) { + } +} + +class C(sn1: ShorName, sn2: ShorName, sn3: ShorName, sn4: ShorName, sn5: ShorName, sn6: ShorName, sn6: ShorName, sn8: ShorName, sn9: ShorName) { + constructor(sn1: ShorName, sn2: ShorName, sn3: ShorName, sn4: ShorName, sn5: ShorName, sn6: ShorName, sn6: ShorName, sn8: ShorName, sn9: ShorName) { + } +} + +class D(sn1: SN, sn2: SN, sn3: SN, sn4: SN, sn5: SN, sn6: SN, sn6: SN, sn8: SN, sn9: SN, sn10: SN, sn11: SN, sn12: SN, sn13: SN, sn14: SN) { + constructor(sn1: SN, sn2: SN, sn3: SN, sn4: SN, sn5: SN, sn6: SN, sn6: SN, sn8: SN, sn9: SN, sn10: SN, sn11: SN, sn12: SN, sn13: SN, sn14: SN) { + } +} + +class E(longLongLongLongNameCLass1: LongLongLongLongNameCLass) { + constructor(longLongLongLongNameCLass1: LongLongLongLongNameCLass) { + } +} + +class F(a: LongLongLongLongNameCLass) { + constructor(a: LongLongLongLongNameCLass) { + } +} + +class G(sn1: ShorName) { + constructor(sn1: ShorName) { + } +} + +class H(sn1: SN, sn2: SN) { + constructor(sn1: SN) { + } +} diff --git a/idea/testData/formatter/parameterList/ParameterListDoNotWrap.kt b/idea/testData/formatter/parameterList/ParameterListDoNotWrap.kt index 77701928fd0..9cd783a858b 100644 --- a/idea/testData/formatter/parameterList/ParameterListDoNotWrap.kt +++ b/idea/testData/formatter/parameterList/ParameterListDoNotWrap.kt @@ -30,4 +30,48 @@ fun test() { } catch (barbarbarbarbar: Exception) { } -} \ No newline at end of file +} + +class LongLongLongLongNameCLass +class ShorName +class SN + +class A(longLongLongLongNameCLass1: LongLongLongLongNameCLass, longLongLongLongNameCLass2: LongLongLongLongNameCLass, longLongLongLongNameCLass3: LongLongLongLongNameCLass) { + constructor(longLongLongLongNameCLass1: LongLongLongLongNameCLass, longLongLongLongNameCLass2: LongLongLongLongNameCLass, longLongLongLongNameCLass3: LongLongLongLongNameCLass) { + } +} + +class B(a: LongLongLongLongNameCLass, b: LongLongLongLongNameCLass, c: LongLongLongLongNameCLass) { + constructor(a: LongLongLongLongNameCLass, b: LongLongLongLongNameCLass, c: LongLongLongLongNameCLass) { + } +} + +class C(sn1: ShorName, sn2 : ShorName, sn3 : ShorName, sn4 : ShorName, sn5 : ShorName, sn6 : ShorName, sn6 : ShorName, sn8 : ShorName, sn9 : ShorName) { + constructor(sn1: ShorName, sn2 : ShorName, sn3 : ShorName, sn4 : ShorName, sn5 : ShorName, sn6 : ShorName, sn6 : ShorName, sn8 : ShorName, sn9 : ShorName) { + } +} + +class D(sn1: SN, sn2 : SN, sn3 : SN, sn4 : SN, sn5 : SN, sn6 : SN, sn6 : SN, sn8 : SN, sn9 : SN, sn10: SN, sn11: SN, sn12: SN, sn13: SN, sn14: SN) { + constructor(sn1: SN, sn2 : SN, sn3 : SN, sn4 : SN, sn5 : SN, sn6 : SN, sn6 : SN, sn8 : SN, sn9 : SN, sn10: SN, sn11: SN, sn12: SN, sn13: SN, sn14: SN) { + } +} + +class E(longLongLongLongNameCLass1: LongLongLongLongNameCLass) { + constructor(longLongLongLongNameCLass1: LongLongLongLongNameCLass) { + } +} + +class F(a: LongLongLongLongNameCLass) { + constructor(a: LongLongLongLongNameCLass) { + } +} + +class G(sn1: ShorName) { + constructor(sn1: ShorName) { + } +} + +class H(sn1: SN, sn2 : SN) { + constructor(sn1: SN) { + } +} diff --git a/idea/testData/formatter/parameterList/ParameterListWrapAlways.after.kt b/idea/testData/formatter/parameterList/ParameterListWrapAlways.after.kt index 9c99ff6e6bf..6aba36ed055 100644 --- a/idea/testData/formatter/parameterList/ParameterListWrapAlways.after.kt +++ b/idea/testData/formatter/parameterList/ParameterListWrapAlways.after.kt @@ -34,4 +34,99 @@ fun test() { } catch (barbarbarbarbar: Exception) { } -} \ No newline at end of file +} + +class LongLongLongLongNameCLass +class ShorName +class SN + +class A(longLongLongLongNameCLass1: LongLongLongLongNameCLass, + longLongLongLongNameCLass2: LongLongLongLongNameCLass, + longLongLongLongNameCLass3: LongLongLongLongNameCLass) { + constructor(longLongLongLongNameCLass1: LongLongLongLongNameCLass, + longLongLongLongNameCLass2: LongLongLongLongNameCLass, + longLongLongLongNameCLass3: LongLongLongLongNameCLass) { + } +} + +class B(a: LongLongLongLongNameCLass, + b: LongLongLongLongNameCLass, + c: LongLongLongLongNameCLass) { + constructor(a: LongLongLongLongNameCLass, + b: LongLongLongLongNameCLass, + c: LongLongLongLongNameCLass) { + } +} + +class C(sn1: ShorName, + sn2: ShorName, + sn3: ShorName, + sn4: ShorName, + sn5: ShorName, + sn6: ShorName, + sn6: ShorName, + sn8: ShorName, + sn9: ShorName) { + constructor(sn1: ShorName, + sn2: ShorName, + sn3: ShorName, + sn4: ShorName, + sn5: ShorName, + sn6: ShorName, + sn6: ShorName, + sn8: ShorName, + sn9: ShorName) { + } +} + +class D(sn1: SN, + sn2: SN, + sn3: SN, + sn4: SN, + sn5: SN, + sn6: SN, + sn6: SN, + sn8: SN, + sn9: SN, + sn10: SN, + sn11: SN, + sn12: SN, + sn13: SN, + sn14: SN) { + constructor(sn1: SN, + sn2: SN, + sn3: SN, + sn4: SN, + sn5: SN, + sn6: SN, + sn6: SN, + sn8: SN, + sn9: SN, + sn10: SN, + sn11: SN, + sn12: SN, + sn13: SN, + sn14: SN) { + } +} + +class E(longLongLongLongNameCLass1: LongLongLongLongNameCLass) { + constructor(longLongLongLongNameCLass1: LongLongLongLongNameCLass) { + } +} + +class F(a: LongLongLongLongNameCLass) { + constructor(a: LongLongLongLongNameCLass) { + } +} + +class G(sn1: ShorName) { + constructor(sn1: ShorName) { + } +} + +class H(sn1: SN, + sn2: SN) { + constructor(sn1: SN) { + } +} diff --git a/idea/testData/formatter/parameterList/ParameterListWrapAlways.kt b/idea/testData/formatter/parameterList/ParameterListWrapAlways.kt index ce407b7a0e3..7b6899c72ab 100644 --- a/idea/testData/formatter/parameterList/ParameterListWrapAlways.kt +++ b/idea/testData/formatter/parameterList/ParameterListWrapAlways.kt @@ -30,4 +30,48 @@ fun test() { } catch (barbarbarbarbar: Exception) { } -} \ No newline at end of file +} + +class LongLongLongLongNameCLass +class ShorName +class SN + +class A(longLongLongLongNameCLass1: LongLongLongLongNameCLass, longLongLongLongNameCLass2: LongLongLongLongNameCLass, longLongLongLongNameCLass3: LongLongLongLongNameCLass) { + constructor(longLongLongLongNameCLass1: LongLongLongLongNameCLass, longLongLongLongNameCLass2: LongLongLongLongNameCLass, longLongLongLongNameCLass3: LongLongLongLongNameCLass) { + } +} + +class B(a: LongLongLongLongNameCLass, b: LongLongLongLongNameCLass, c: LongLongLongLongNameCLass) { + constructor(a: LongLongLongLongNameCLass, b: LongLongLongLongNameCLass, c: LongLongLongLongNameCLass) { + } +} + +class C(sn1: ShorName, sn2 : ShorName, sn3 : ShorName, sn4 : ShorName, sn5 : ShorName, sn6 : ShorName, sn6 : ShorName, sn8 : ShorName, sn9 : ShorName) { + constructor(sn1: ShorName, sn2 : ShorName, sn3 : ShorName, sn4 : ShorName, sn5 : ShorName, sn6 : ShorName, sn6 : ShorName, sn8 : ShorName, sn9 : ShorName) { + } +} + +class D(sn1: SN, sn2 : SN, sn3 : SN, sn4 : SN, sn5 : SN, sn6 : SN, sn6 : SN, sn8 : SN, sn9 : SN, sn10: SN, sn11: SN, sn12: SN, sn13: SN, sn14: SN) { + constructor(sn1: SN, sn2 : SN, sn3 : SN, sn4 : SN, sn5 : SN, sn6 : SN, sn6 : SN, sn8 : SN, sn9 : SN, sn10: SN, sn11: SN, sn12: SN, sn13: SN, sn14: SN) { + } +} + +class E(longLongLongLongNameCLass1: LongLongLongLongNameCLass) { + constructor(longLongLongLongNameCLass1: LongLongLongLongNameCLass) { + } +} + +class F(a: LongLongLongLongNameCLass) { + constructor(a: LongLongLongLongNameCLass) { + } +} + +class G(sn1: ShorName) { + constructor(sn1: ShorName) { + } +} + +class H(sn1: SN, sn2 : SN) { + constructor(sn1: SN) { + } +} diff --git a/idea/testData/formatter/parameterList/ParameterListWrapAsNeeded.after.kt b/idea/testData/formatter/parameterList/ParameterListWrapAsNeeded.after.kt index 617eb6a19c6..c119f6f61cd 100644 --- a/idea/testData/formatter/parameterList/ParameterListWrapAsNeeded.after.kt +++ b/idea/testData/formatter/parameterList/ParameterListWrapAsNeeded.after.kt @@ -35,4 +35,96 @@ fun test() { } catch (barbarbarbarbar: Exception) { } -} \ No newline at end of file +} + +class LongLongLongLongNameCLass +class ShorName +class SN + +class A(longLongLongLongNameCLass1: LongLongLongLongNameCLass, + longLongLongLongNameCLass2: LongLongLongLongNameCLass, + longLongLongLongNameCLass3: LongLongLongLongNameCLass) { + constructor( + longLongLongLongNameCLass1: LongLongLongLongNameCLass, + longLongLongLongNameCLass2: LongLongLongLongNameCLass, + longLongLongLongNameCLass3: LongLongLongLongNameCLass) { + } +} + +class B(a: LongLongLongLongNameCLass, + b: LongLongLongLongNameCLass, + c: LongLongLongLongNameCLass) { + constructor( + a: LongLongLongLongNameCLass, + b: LongLongLongLongNameCLass, + c: LongLongLongLongNameCLass) { + } +} + +class C(sn1: ShorName, + sn2: ShorName, + sn3: ShorName, + sn4: ShorName, + sn5: ShorName, + sn6: ShorName, + sn6: ShorName, + sn8: ShorName, + sn9: ShorName) { + constructor(sn1: ShorName, + sn2: ShorName, + sn3: ShorName, + sn4: ShorName, + sn5: ShorName, + sn6: ShorName, + sn6: ShorName, + sn8: ShorName, + sn9: ShorName) { + } +} + +class D(sn1: SN, sn2: SN, + sn3: SN, sn4: SN, + sn5: SN, sn6: SN, + sn6: SN, sn8: SN, + sn9: SN, sn10: SN, + sn11: SN, sn12: SN, + sn13: SN, sn14: SN) { + constructor(sn1: SN, + sn2: SN, + sn3: SN, + sn4: SN, + sn5: SN, + sn6: SN, + sn6: SN, + sn8: SN, + sn9: SN, + sn10: SN, + sn11: SN, + sn12: SN, + sn13: SN, + sn14: SN) { + } +} + +class E(longLongLongLongNameCLass1: LongLongLongLongNameCLass) { + constructor( + longLongLongLongNameCLass1: LongLongLongLongNameCLass) { + } +} + +class F(a: LongLongLongLongNameCLass) { + constructor( + a: LongLongLongLongNameCLass) { + } +} + +class G(sn1: ShorName) { + constructor( + sn1: ShorName) { + } +} + +class H(sn1: SN, sn2: SN) { + constructor(sn1: SN) { + } +} diff --git a/idea/testData/formatter/parameterList/ParameterListWrapAsNeeded.kt b/idea/testData/formatter/parameterList/ParameterListWrapAsNeeded.kt index 21253e8bef4..03025c1504d 100644 --- a/idea/testData/formatter/parameterList/ParameterListWrapAsNeeded.kt +++ b/idea/testData/formatter/parameterList/ParameterListWrapAsNeeded.kt @@ -30,4 +30,48 @@ fun test() { } catch (barbarbarbarbar: Exception) { } -} \ No newline at end of file +} + +class LongLongLongLongNameCLass +class ShorName +class SN + +class A(longLongLongLongNameCLass1: LongLongLongLongNameCLass, longLongLongLongNameCLass2: LongLongLongLongNameCLass, longLongLongLongNameCLass3: LongLongLongLongNameCLass) { + constructor(longLongLongLongNameCLass1: LongLongLongLongNameCLass, longLongLongLongNameCLass2: LongLongLongLongNameCLass, longLongLongLongNameCLass3: LongLongLongLongNameCLass) { + } +} + +class B(a: LongLongLongLongNameCLass, b: LongLongLongLongNameCLass, c: LongLongLongLongNameCLass) { + constructor(a: LongLongLongLongNameCLass, b: LongLongLongLongNameCLass, c: LongLongLongLongNameCLass) { + } +} + +class C(sn1: ShorName, sn2 : ShorName, sn3 : ShorName, sn4 : ShorName, sn5 : ShorName, sn6 : ShorName, sn6 : ShorName, sn8 : ShorName, sn9 : ShorName) { + constructor(sn1: ShorName, sn2 : ShorName, sn3 : ShorName, sn4 : ShorName, sn5 : ShorName, sn6 : ShorName, sn6 : ShorName, sn8 : ShorName, sn9 : ShorName) { + } +} + +class D(sn1: SN, sn2 : SN, sn3 : SN, sn4 : SN, sn5 : SN, sn6 : SN, sn6 : SN, sn8 : SN, sn9 : SN, sn10: SN, sn11: SN, sn12: SN, sn13: SN, sn14: SN) { + constructor(sn1: SN, sn2 : SN, sn3 : SN, sn4 : SN, sn5 : SN, sn6 : SN, sn6 : SN, sn8 : SN, sn9 : SN, sn10: SN, sn11: SN, sn12: SN, sn13: SN, sn14: SN) { + } +} + +class E(longLongLongLongNameCLass1: LongLongLongLongNameCLass) { + constructor(longLongLongLongNameCLass1: LongLongLongLongNameCLass) { + } +} + +class F(a: LongLongLongLongNameCLass) { + constructor(a: LongLongLongLongNameCLass) { + } +} + +class G(sn1: ShorName) { + constructor(sn1: ShorName) { + } +} + +class H(sn1: SN, sn2 : SN) { + constructor(sn1: SN) { + } +}