Minor, add default value to contract expression flags

This commit is contained in:
Alexander Udalov
2018-03-16 23:12:42 +01:00
parent 46a1109910
commit f7a3182982
4 changed files with 38 additions and 41 deletions
@@ -117,7 +117,7 @@ class ContractDeserializerImpl(private val configuration: DeserializationConfigu
}
private fun extractPrimitiveExpression(proto: ProtoBuf.Expression, primitiveType: PrimitiveExpressionType?): BooleanExpression? {
val isInverted = proto.hasFlags() && Flags.IS_NEGATED.get(proto.flags)
val isInverted = Flags.IS_NEGATED.get(proto.flags)
return when (primitiveType) {
PrimitiveExpressionType.VALUE_PARAMETER_REFERENCE, PrimitiveExpressionType.RECEIVER_REFERENCE -> {
@@ -200,7 +200,7 @@ class ContractDeserializerImpl(private val configuration: DeserializationConfigu
proto.hasValueParameterReference() && proto.hasType() ->
expressionTypes.add(PrimitiveExpressionType.INSTANCE_CHECK)
proto.hasValueParameterReference() && proto.hasFlag(Flags.IS_NULL_CHECK_PREDICATE) ->
proto.hasValueParameterReference() && Flags.IS_NULL_CHECK_PREDICATE.get(proto.flags) ->
expressionTypes.add(PrimitiveExpressionType.NULLABILITY_CHECK)
}
@@ -226,9 +226,6 @@ class ContractDeserializerImpl(private val configuration: DeserializationConfigu
private fun ProtoBuf.Expression.hasType(): Boolean = this.hasIsInstanceType() || this.hasIsInstanceTypeId()
private fun ProtoBuf.Expression.hasFlag(flag: Flags.BooleanFlagField) =
this.hasFlags() && flag.get(this.flags)
// Arguments of expressions with such types are never other expressions
private enum class PrimitiveExpressionType {
VALUE_PARAMETER_REFERENCE,
@@ -247,4 +244,4 @@ class ContractDeserializerImpl(private val configuration: DeserializationConfigu
OR_SEQUENCE
}
}
}
}