@@ -142,10 +142,10 @@ class NullAction : Action {
142142}
143143
144144private fun seqCons (hd : Action , tl : Action ): Action =
145- if (tl is SequentialAction ) {
146- SequentialAction ( listOf (hd) + tl.initialActions)
147- } else {
148- SequentialAction (hd, tl)
145+ when (tl) {
146+ is NullAction -> hd
147+ is SequentialAction -> SequentialAction ( listOf (hd) + tl.initialActions)
148+ else -> SequentialAction (hd, tl)
149149 }
150150
151151private sealed class MarkerFactory (
@@ -303,10 +303,10 @@ class TrajectoryActionBuilder private constructor(
303303 }
304304 }
305305
306- if (actions.size == 1 ) {
307- Pair (actions.first (), msRem)
308- } else {
309- Pair (ParallelAction (actions), msRem)
306+ when (actions.size) {
307+ 0 -> Pair (NullAction (), msRem)
308+ 1 -> Pair (actions.first(), msRem)
309+ else -> Pair (ParallelAction (actions), msRem)
310310 }
311311 }
312312
@@ -363,7 +363,12 @@ class TrajectoryActionBuilder private constructor(
363363
364364 return if (n == 0 ) {
365365 TrajectoryActionBuilder (this , tb, 0 , lastPoseUnmapped, lastPose, lastTangent, emptyList()) { tail ->
366- cont(ParallelAction (tail, seqCons(SleepAction (dt), a)))
366+ val m = seqCons(SleepAction (dt), a)
367+ if (tail is NullAction ) {
368+ cont(m)
369+ } else {
370+ cont(ParallelAction (tail, m))
371+ }
367372 }
368373 } else {
369374 TrajectoryActionBuilder (
@@ -864,6 +869,6 @@ class TrajectoryActionBuilder private constructor(
864869 }
865870
866871 fun build (): Action {
867- return endTrajectory().cont(SequentialAction ())
872+ return endTrajectory().cont(NullAction ())
868873 }
869874}
0 commit comments