[Interop][Tests] Check function flags

This commit is contained in:
Sergey Bogolepov
2020-07-28 13:13:10 +07:00
committed by Sergey Bogolepov
parent 6efc488084
commit 52988b5551
@@ -32,7 +32,8 @@ internal class KmComparator(private val configuration: ComparisonConfig) {
fun compare(function1: KmFunction, function2: KmFunction): MetadataCompareResult = serialComparator(
compare(KmFunction::name, ::compare) to "Different names",
compare(KmFunction::returnType, ::compareTypes) to "Return type mismatch",
compare(KmFunction::valueParameters, compareLists(::compare)) to "Value parameters mismatch"
compare(KmFunction::valueParameters, compareLists(::compare)) to "Value parameters mismatch",
::compareFunctionFlags to "Flags mismatch"
)(function1, function2)
fun compare(property1: KmProperty, property2: KmProperty): MetadataCompareResult = serialComparator(
@@ -68,6 +69,14 @@ internal class KmComparator(private val configuration: ComparisonConfig) {
else -> Fail("$string1 != $string2")
}
private fun compareFunctionFlags(function1: KmFunction, function2: KmFunction): MetadataCompareResult =
serialComparator(
checkFlag(Flag.Function.IS_EXTERNAL, "IS_EXTERNAL"),
checkFlag(Flag.Function.IS_DECLARATION, "IS_DECLARATION"),
::compareVisibilityFlags,
::compareModalityFlags
)(function1.flags, function2.flags)
private fun comparePropertyFlags(property1: KmProperty, property2: KmProperty): MetadataCompareResult =
serialComparator(
checkFlag(Flag.Property.IS_CONST, "IS_CONST"),