[FIR] Add inline checker for bodies of inline functions

This checker doesn't support `@PublishedAPI` yet, so some BB tests for it
 were muted. #KT-46270
This commit is contained in:
Dmitriy Novozhilov
2021-04-23 10:15:36 +03:00
committed by TeamCityServer
parent 7e052c1eb1
commit 32c3f85679
95 changed files with 804 additions and 543 deletions
@@ -12,17 +12,17 @@ operator fun <T, V> @ExtensionFunctionType Function2<T, T, V>.dec() = this
inline fun <T, V> inlineFunWithInvoke(s: (p: T) -> V, ext: T.(p: T) -> V) {
+s
-s
s++
++s
s--
--s
<!USAGE_IS_NOT_INLINABLE!>-<!>s
<!USAGE_IS_NOT_INLINABLE!>s<!>++
<!USAGE_IS_NOT_INLINABLE!>++<!>s
<!USAGE_IS_NOT_INLINABLE!>s<!>--
<!USAGE_IS_NOT_INLINABLE, USAGE_IS_NOT_INLINABLE!>--<!>s
+ext
-ext
ext++
++ext
ext--
--ext
<!USAGE_IS_NOT_INLINABLE!>-<!>ext
<!USAGE_IS_NOT_INLINABLE!>ext<!>++
<!USAGE_IS_NOT_INLINABLE!>++<!>ext
<!USAGE_IS_NOT_INLINABLE!>ext<!>--
<!USAGE_IS_NOT_INLINABLE, USAGE_IS_NOT_INLINABLE!>--<!>ext
}
inline fun <T, V> Function1<T, V>.inlineFunWithInvoke() {
@@ -16,6 +16,6 @@ operator fun <T, U, V, W> @ExtensionFunctionType Function3<T, U, V, W>.not() : B
}
inline fun <T, U, V> inlineFunWithInvoke(s: (p: T, l: U) -> V, ext: T.(p: T, l : U) -> V) {
!s
!ext
<!USAGE_IS_NOT_INLINABLE!>!<!>s
<!USAGE_IS_NOT_INLINABLE!>!<!>ext
}