From b107bc401c0ac5ef01fe35cdbb3e63116551e999 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Wed, 4 May 2016 15:28:55 +0300 Subject: [PATCH] Formatter: Don't enforce empty line between secondary constructors without body (KT-12175) #KT-12175 Fixed --- ChangeLog.md | 1 + .../jetbrains/kotlin/idea/formatter/kotlinSpacingRules.kt | 1 + .../generate/secondaryConstructors/javaSupers.kt.after | 1 - .../secondaryConstructors/javaSupersWithGenerics.kt.after | 1 - .../generate/secondaryConstructors/supers.kt.after | 1 - .../secondaryConstructors/supersSomeExist.kt.after | 1 - .../secondaryConstructors/supersWithGenerics.kt.after | 1 - idea/testData/formatter/SecondaryConstructors.after.kt | 8 ++++++++ idea/testData/formatter/SecondaryConstructors.kt | 8 ++++++++ .../formatter/secondaryCtorLineBreak.after.inv.kt | 1 - idea/testData/formatter/secondaryCtorLineBreak.after.kt | 1 - .../PrimaryConstructorParameterPropagationAfter.kt | 1 - .../SecondaryConstructorParameterPropagationAfter.kt | 1 - 13 files changed, 18 insertions(+), 9 deletions(-) diff --git a/ChangeLog.md b/ChangeLog.md index 467aa0cafd5..8a66d3acd34 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -24,6 +24,7 @@ New features: - [KT-12079](https://youtrack.jetbrains.com/issue/KT-12079) Support "Autowired members defined in invalid Spring bean" inspection on Kotlin declarations - [KT-11704](https://youtrack.jetbrains.com/issue/KT-11704) Support file path references inside of Kotlin string literals - [KT-12092](https://youtrack.jetbrains.com/issue/KT-12092) Implement bean references in @Qualifier annotations +- [KT-12175](https://youtrack.jetbrains.com/issue/KT-12175) Don't enforce empty line after one-line constructor Issues fixed: diff --git a/idea/formatter/src/org/jetbrains/kotlin/idea/formatter/kotlinSpacingRules.kt b/idea/formatter/src/org/jetbrains/kotlin/idea/formatter/kotlinSpacingRules.kt index 4554372d796..018549ddbb0 100644 --- a/idea/formatter/src/org/jetbrains/kotlin/idea/formatter/kotlinSpacingRules.kt +++ b/idea/formatter/src/org/jetbrains/kotlin/idea/formatter/kotlinSpacingRules.kt @@ -59,6 +59,7 @@ fun createSpacingBuilder(settings: CodeStyleSettings, builderUtil: KotlinSpacing inPosition(left = FUN, right = FUN).emptyLinesIfLineBreakInLeft(1) inPosition(left = PROPERTY, right = FUN).emptyLinesIfLineBreakInLeft(1) inPosition(left = FUN, right = PROPERTY).emptyLinesIfLineBreakInLeft(1) + inPosition(left = SECONDARY_CONSTRUCTOR, right = SECONDARY_CONSTRUCTOR).emptyLinesIfLineBreakInLeft(1) // Case left for alternative constructors inPosition(left = FUN, right = CLASS).emptyLinesIfLineBreakInLeft(1) diff --git a/idea/testData/codeInsight/generate/secondaryConstructors/javaSupers.kt.after b/idea/testData/codeInsight/generate/secondaryConstructors/javaSupers.kt.after index 0b001fe22d2..70622b77294 100644 --- a/idea/testData/codeInsight/generate/secondaryConstructors/javaSupers.kt.after +++ b/idea/testData/codeInsight/generate/secondaryConstructors/javaSupers.kt.after @@ -3,7 +3,6 @@ class Foo : Base { val x = 1 constructor(n: Int) : super(n) - constructor(a: Int, b: Int) : super(a, b) fun foo() { diff --git a/idea/testData/codeInsight/generate/secondaryConstructors/javaSupersWithGenerics.kt.after b/idea/testData/codeInsight/generate/secondaryConstructors/javaSupersWithGenerics.kt.after index 3b89bcb1ec2..6593bcfe901 100644 --- a/idea/testData/codeInsight/generate/secondaryConstructors/javaSupersWithGenerics.kt.after +++ b/idea/testData/codeInsight/generate/secondaryConstructors/javaSupersWithGenerics.kt.after @@ -3,7 +3,6 @@ class Foo : Base { val x = 1 constructor(x: U) : super(x) - constructor(x: U, y: Int?) : super(x, y) fun foo() { diff --git a/idea/testData/codeInsight/generate/secondaryConstructors/supers.kt.after b/idea/testData/codeInsight/generate/secondaryConstructors/supers.kt.after index 4b2aa54ed5e..3ce7aefe94b 100644 --- a/idea/testData/codeInsight/generate/secondaryConstructors/supers.kt.after +++ b/idea/testData/codeInsight/generate/secondaryConstructors/supers.kt.after @@ -7,7 +7,6 @@ class Foo : Base { val x = 1 constructor(a: Int, b: Int) : super(a, b) - constructor(n: Int) : super(n) fun foo() { diff --git a/idea/testData/codeInsight/generate/secondaryConstructors/supersSomeExist.kt.after b/idea/testData/codeInsight/generate/secondaryConstructors/supersSomeExist.kt.after index 9b8eb6ec646..b2f30f295b0 100644 --- a/idea/testData/codeInsight/generate/secondaryConstructors/supersSomeExist.kt.after +++ b/idea/testData/codeInsight/generate/secondaryConstructors/supersSomeExist.kt.after @@ -7,7 +7,6 @@ class Foo : Base { val x = 1 constructor(x: Int) : super(x) - constructor(a: Int, b: Int) : super(a, b) fun foo() { diff --git a/idea/testData/codeInsight/generate/secondaryConstructors/supersWithGenerics.kt.after b/idea/testData/codeInsight/generate/secondaryConstructors/supersWithGenerics.kt.after index f46ba578064..5756c1534dc 100644 --- a/idea/testData/codeInsight/generate/secondaryConstructors/supersWithGenerics.kt.after +++ b/idea/testData/codeInsight/generate/secondaryConstructors/supersWithGenerics.kt.after @@ -7,7 +7,6 @@ class Foo : Base { val x = 1 constructor(x: U, y: Int) : super(x, y) - constructor(n: U) : super(n) fun foo() { diff --git a/idea/testData/formatter/SecondaryConstructors.after.kt b/idea/testData/formatter/SecondaryConstructors.after.kt index dd5fe264a3e..681018c01e6 100644 --- a/idea/testData/formatter/SecondaryConstructors.after.kt +++ b/idea/testData/formatter/SecondaryConstructors.after.kt @@ -54,6 +54,14 @@ class A { constructor() : this() { } + + constructor(a: Int) : this() + constructor(a: Byte) : this() + constructor() : this() + constructor() : super() { + } + + constructor() : this() constructor() : super() { diff --git a/idea/testData/formatter/SecondaryConstructors.kt b/idea/testData/formatter/SecondaryConstructors.kt index 73fe328e04d..01582779bd3 100644 --- a/idea/testData/formatter/SecondaryConstructors.kt +++ b/idea/testData/formatter/SecondaryConstructors.kt @@ -26,6 +26,14 @@ constructor() {} constructor() : this() {} constructor():this() {} + + constructor(a: Int) : this() + constructor(a: Byte) : this() constructor(): this () constructor(): super(){} + + + constructor(): this () + + constructor(): super(){} } \ No newline at end of file diff --git a/idea/testData/formatter/secondaryCtorLineBreak.after.inv.kt b/idea/testData/formatter/secondaryCtorLineBreak.after.inv.kt index b5ab2319a6b..c7a3cb1ba0f 100644 --- a/idea/testData/formatter/secondaryCtorLineBreak.after.inv.kt +++ b/idea/testData/formatter/secondaryCtorLineBreak.after.inv.kt @@ -19,7 +19,6 @@ class A { } constructor() - constructor() { } } diff --git a/idea/testData/formatter/secondaryCtorLineBreak.after.kt b/idea/testData/formatter/secondaryCtorLineBreak.after.kt index cb13b54d91e..4635fb9dc56 100644 --- a/idea/testData/formatter/secondaryCtorLineBreak.after.kt +++ b/idea/testData/formatter/secondaryCtorLineBreak.after.kt @@ -23,7 +23,6 @@ class A } constructor() - constructor() { } diff --git a/idea/testData/refactoring/changeSignature/PrimaryConstructorParameterPropagationAfter.kt b/idea/testData/refactoring/changeSignature/PrimaryConstructorParameterPropagationAfter.kt index 0963b2aa7c7..09539d0d971 100644 --- a/idea/testData/refactoring/changeSignature/PrimaryConstructorParameterPropagationAfter.kt +++ b/idea/testData/refactoring/changeSignature/PrimaryConstructorParameterPropagationAfter.kt @@ -4,7 +4,6 @@ open class A(n: Int) { open class B: A { constructor(n: Int) : super(n) - constructor(b: Boolean, n: Int): super(n) } diff --git a/idea/testData/refactoring/changeSignature/SecondaryConstructorParameterPropagationAfter.kt b/idea/testData/refactoring/changeSignature/SecondaryConstructorParameterPropagationAfter.kt index e3445e7b100..2e42cfced13 100644 --- a/idea/testData/refactoring/changeSignature/SecondaryConstructorParameterPropagationAfter.kt +++ b/idea/testData/refactoring/changeSignature/SecondaryConstructorParameterPropagationAfter.kt @@ -5,7 +5,6 @@ open class A { open class B: A { constructor(n: Int) : super(n) - constructor(b: Boolean, n: Int): super(n) }