From 0dd0505cf03fb0fb92da4c2010ae6f31bba70d90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Przemys=C5=82aw=20Pluta?= Date: Sun, 29 Mar 2020 21:09:18 +0200 Subject: [PATCH] Enable resetting time signature in staff construction --- .../evaluation/evaluator/StaffEvaluator.kt | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/core/src/main/kotlin/io/smnp/evaluation/evaluator/StaffEvaluator.kt b/core/src/main/kotlin/io/smnp/evaluation/evaluator/StaffEvaluator.kt index b72959b..a07de02 100644 --- a/core/src/main/kotlin/io/smnp/evaluation/evaluator/StaffEvaluator.kt +++ b/core/src/main/kotlin/io/smnp/evaluation/evaluator/StaffEvaluator.kt @@ -64,14 +64,19 @@ class StaffEvaluator : Evaluator() { val evaluatedSignature = calculateTimeSignature(evaluatedMeasure) currentSignature?.let { - if (evaluatedSignature != it) { - val simplified = evaluatedSignature.simplified - throw contextEvaluationException( - "Invalid time signature: expected ${it.numerator}/${it.denominator}, got ${simplified.numerator}/${simplified.denominator}", - measure.position, - environment - ) + when { + it.numerator == 0 -> return + evaluatedSignature != it -> { + val simplified = evaluatedSignature.simplified + throw contextEvaluationException( + "Invalid time signature: expected ${it.numerator}/${it.denominator}, got ${simplified.numerator}/${simplified.denominator}", + measure.position, + environment + ) + } } + + null } }