Add typed Kotlin JSONObject Boolean opt

ober

a56576481905e9152869948b3fd80f9274e8a5d3

diff --git a/lib/jerboa/typed/checker.ss b/lib/jerboa/typed/checker.ss
index c3777ad..0a2962a 100644
--- a/lib/jerboa/typed/checker.ss
+++ b/lib/jerboa/typed/checker.ss
@@ -578,6 +578,9 @@
       (cons 'json-object-opt-string-default
             (make-typed-call-sig (list 'JSONObject 'String 'String) 'String '()
               'jvm-json-object-opt-string-default '()))
+      (cons 'json-object-opt-bool-default
+            (make-typed-call-sig (list 'JSONObject 'String 'Bool) 'Bool '()
+              'jvm-json-object-opt-bool-default '()))
       (cons 'json-object-opt-float32
             (make-typed-call-sig (list 'JSONObject 'String) 'Float32 '()
               'jvm-json-object-opt-float32 '()))
diff --git a/lib/jerboa/typed/core.ss b/lib/jerboa/typed/core.ss
index 2d5e2be..536a3ba 100644
--- a/lib/jerboa/typed/core.ss
+++ b/lib/jerboa/typed/core.ss
@@ -170,6 +170,7 @@
       jvm-json-object-put-json-object
       jvm-json-object-opt-string
       jvm-json-object-opt-string-default
+      jvm-json-object-opt-bool-default
       jvm-json-object-opt-float32
       jvm-json-object-opt-float32-default
       jvm-json-object-opt-int-default
diff --git a/lib/jerboa/typed/kotlin/lower.ss b/lib/jerboa/typed/kotlin/lower.ss
index 427fbd9..1433454 100644
--- a/lib/jerboa/typed/kotlin/lower.ss
+++ b/lib/jerboa/typed/kotlin/lower.ss
@@ -549,6 +549,8 @@
          (make-kt-member-call (car args) 'optString (cdr args))]
         [(jvm-json-object-opt-string-default)
          (make-kt-member-call (car args) 'optString (cdr args))]
+        [(jvm-json-object-opt-bool-default)
+         (make-kt-member-call (car args) 'optBoolean (cdr args))]
         [(jvm-json-object-opt-float32)
          (make-kt-member-call
            (make-kt-member-call (car args) 'optDouble (cdr args))
diff --git a/tests/test-typed-kotlin.ss b/tests/test-typed-kotlin.ss
index b0283c6..1c78cd2 100644
--- a/tests/test-typed-kotlin.ss
+++ b/tests/test-typed-kotlin.ss
@@ -816,7 +816,7 @@
 
 (define json-object-form
   '(typed-library (sample typed json-object)
-     (export makeCell copyCell readX readXDefault readCount readItems readMeta readName readNameDefault)
+     (export makeCell copyCell readX readXDefault readCount readActive readItems readMeta readName readNameDefault)
      (type JSONObject)
      (type JSONArray)
      (type Float32)
@@ -843,6 +843,8 @@
        (json-object-opt-float32-default json "x" (float32 1.0)))
      (def (readCount (json : JSONObject)) : Int32
        (json-object-opt-int32-default json "count" (int32 1)))
+     (def (readActive (json : JSONObject)) : Bool
+       (json-object-opt-bool-default json "active" #f))
      (def (readTimestamp (json : JSONObject)) : Int
        (json-object-opt-int-default json "generated_at" (int 0)))
      (def (readItems (json : JSONObject)) : (Nullable JSONArray)
@@ -895,6 +897,9 @@
 (test-contains "JSONObject opt Int default lowers to optLong"
   json-object-kotlin
   "json.optLong(\"generated_at\", 0L)")
+(test-contains "JSONObject opt Bool default lowers to optBoolean"
+  json-object-kotlin
+  "json.optBoolean(\"active\", false)")
 (test-contains "JSONObject opt JSONArray lowers to nullable optJSONArray"
   json-object-kotlin
   "json.optJSONArray(\"items\")")