Add typed Kotlin FloatArray length helper

ober

c9a0d13eb7cfdff266aaaec6a253c643d016a77b

diff --git a/lib/jerboa/typed/checker.ss b/lib/jerboa/typed/checker.ss
index f56daa7..84b360f 100644
--- a/lib/jerboa/typed/checker.ss
+++ b/lib/jerboa/typed/checker.ss
@@ -397,6 +397,9 @@
       (cons 'float-array-ref
             (make-typed-call-sig (list 'FloatArray 'Int32) 'Float32 '()
               'jvm-float-array-ref '()))
+      (cons 'float-array-length
+            (make-typed-call-sig (list 'FloatArray) 'Int32 '()
+              'jvm-float-array-length '()))
       (cons 'int32->string
             (make-typed-call-sig (list 'Int32) 'String '()
               'jvm-to-string '()))
diff --git a/lib/jerboa/typed/kotlin/lower.ss b/lib/jerboa/typed/kotlin/lower.ss
index 55c0144..69440be 100644
--- a/lib/jerboa/typed/kotlin/lower.ss
+++ b/lib/jerboa/typed/kotlin/lower.ss
@@ -264,6 +264,8 @@
          (make-kt-call (kt-name1 'floatArrayOf) args)]
         [(jvm-float-array-ref)
          (make-kt-index-get (car args) (cadr args))]
+        [(jvm-float-array-length)
+         (make-kt-member-get (car args) 'size)]
         [(bytevector-length)
          (make-kt-member-call
            (make-kt-member-get (car args) 'size)
diff --git a/tests/test-typed-kotlin.ss b/tests/test-typed-kotlin.ss
index 8d95877..3fe5b5e 100644
--- a/tests/test-typed-kotlin.ss
+++ b/tests/test-typed-kotlin.ss
@@ -173,7 +173,7 @@
 (define geometry-form
   '(typed-library (sample typed geometry)
      (export make-SsdCell SsdCell? SsdCell-x SsdCell-y SsdCell-w SsdCell-h
-             ssd-cell-cx ssd-cell-rect rect-overlap-area)
+             ssd-cell-cx ssd-cell-rect rect-overlap-area rect-complete?)
      (type Float32)
      (type FloatArray)
      (type Int32)
@@ -210,7 +210,9 @@
                        (float-array-ref b (int32 3)))))
          (if (or (<= right left) (<= bottom top))
            (float32 0.0)
-           (* (- right left) (- bottom top)))))))
+           (* (- right left) (- bottom top)))))
+     (def (rect-complete? (rect : FloatArray)) : Bool
+       (>= (float-array-length rect) (int32 4)))))
 
 (define geometry-kotlin (typed-library-form->kotlin-string geometry-form))
 
@@ -220,6 +222,8 @@
   "return floatArrayOf(cell.x, cell.y, (cell.x + cell.w), (cell.y + cell.h))")
 (test-contains "FloatArray indexing lowers to brackets" geometry-kotlin
   "val left: Float = if ((a[0] > b[0])) a[0] else b[0]")
+(test-contains "FloatArray length lowers to Kotlin size" geometry-kotlin
+  "rect.size")
 
 (define key-form
   '(typed-library (sample typed keys)