diff --git a/plugins/kotlin/formatter/src/org/jetbrains/kotlin/idea/formatter/kotlinSpacingRules.kt b/plugins/kotlin/formatter/src/org/jetbrains/kotlin/idea/formatter/kotlinSpacingRules.kt
index 130b035591fe2c09c8df6aaea2ef9836d6f84bf9..ba44e5fdabce25db44ddb381d65a3ad4f619ab9e 100644
--- a/plugins/kotlin/formatter/src/org/jetbrains/kotlin/idea/formatter/kotlinSpacingRules.kt
+++ b/plugins/kotlin/formatter/src/org/jetbrains/kotlin/idea/formatter/kotlinSpacingRules.kt
@@ -281,6 +281,8 @@ fun createSpacingBuilder(settings: CodeStyleSettings, builderUtil: KotlinSpacing
             after(DOC_COMMENT).lineBreakInCode()
 
             // =============== Spacing ================
+            aroundInside(AND, INTERSECTION_TYPE).spacesNoLineBreak(1)
+
             between(EOL_COMMENT, COMMA).lineBreakInCode()
             before(COMMA).spacesNoLineBreak(if (kotlinCommonSettings.SPACE_BEFORE_COMMA) 1 else 0)
             after(COMMA).spaceIf(kotlinCommonSettings.SPACE_AFTER_COMMA)
diff --git a/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/formatter/FormatterTestGenerated.java b/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/formatter/FormatterTestGenerated.java
index 3b81c2c1dfe5e5ff28e0a5293fb8b0fda32a2e2f..6af973933d801671d267fc41a169291c42c52a90 100644
--- a/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/formatter/FormatterTestGenerated.java
+++ b/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/formatter/FormatterTestGenerated.java
@@ -679,6 +679,11 @@ public abstract class FormatterTestGenerated extends AbstractFormatterTest {
                 runTest("testData/formatter/DanglingComments.after.kt");
             }
 
+            @TestMetadata("DefinitelyNonNullTypes.after.kt")
+            public void testDefinitelyNonNullTypes() throws Exception {
+                runTest("testData/formatter/DefinitelyNonNullTypes.after.kt");
+            }
+
             @TestMetadata("DelegationList.after.kt")
             public void testDelegationList() throws Exception {
                 runTest("testData/formatter/DelegationList.after.kt");
diff --git a/plugins/kotlin/idea/tests/testData/formatter/DefinitelyNonNullTypes.after.kt b/plugins/kotlin/idea/tests/testData/formatter/DefinitelyNonNullTypes.after.kt
new file mode 100644
index 0000000000000000000000000000000000000000..435ae8cf2d6492f9296651e29e9c2b69139e4923
--- /dev/null
+++ b/plugins/kotlin/idea/tests/testData/formatter/DefinitelyNonNullTypes.after.kt
@@ -0,0 +1,8 @@
+fun <T> formattingA(x: T & Any) = x
+fun <T> formattingB(x: T & Any) = x
+fun <T> formattingC(x: T & Any) = x
+fun <T> formattingD(x: T & Any
+) = x
+
+val f = { i: Int & Any -> }
+fun <T : Int & Any> f() = Unit
diff --git a/plugins/kotlin/idea/tests/testData/formatter/DefinitelyNonNullTypes.kt b/plugins/kotlin/idea/tests/testData/formatter/DefinitelyNonNullTypes.kt
new file mode 100644
index 0000000000000000000000000000000000000000..830049dfbd506f48c3d47fb346e90ff3d95f1fac
--- /dev/null
+++ b/plugins/kotlin/idea/tests/testData/formatter/DefinitelyNonNullTypes.kt
@@ -0,0 +1,11 @@
+fun <T> formattingA(x: T & Any) = x
+fun <T> formattingB(x: T&Any) = x
+fun <T> formattingC(x: T     &  Any) = x
+fun <T> formattingD(x: T
+                &
+
+                Any
+            ) = x
+
+val f = { i: Int&     Any -> }
+fun <T : Int     &Any> f() = Unit
\ No newline at end of file