diff --git a/.github/workflows/gradle-wrapper-validation.yml b/.github/workflows/gradle-wrapper-validation.yml
index b03c774d..21def6f5 100644
--- a/.github/workflows/gradle-wrapper-validation.yml
+++ b/.github/workflows/gradle-wrapper-validation.yml
@@ -11,5 +11,5 @@ jobs:
name: "Validation"
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- uses: gradle/wrapper-validation-action@v1
diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml
index 7dd4b53a..95ab6df3 100644
--- a/.github/workflows/publish.yml
+++ b/.github/workflows/publish.yml
@@ -24,7 +24,7 @@ jobs:
TEST_TASK: check
runs-on: ${{matrix.os}}
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: Cache Kotlin Native Compiler
uses: actions/cache@v3
with:
@@ -52,7 +52,7 @@ jobs:
runs-on: macos-latest
if: github.repository == 'ajalt/clikt'
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: Fetch git tags
run: git fetch origin +refs/tags/*:refs/tags/*
- name: Cache Kotlin Native Compiler
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index e23d7600..433bbe9f 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -20,7 +20,7 @@ jobs:
TEST_TASK: check
runs-on: ${{matrix.os}}
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: Cache Kotlin Native Compiler
uses: actions/cache@v3
with:
diff --git a/clikt/src/commonMain/kotlin/com/github/ajalt/clikt/core/CliktCommand.kt b/clikt/src/commonMain/kotlin/com/github/ajalt/clikt/core/CliktCommand.kt
index f10f3f1c..e6a60d27 100644
--- a/clikt/src/commonMain/kotlin/com/github/ajalt/clikt/core/CliktCommand.kt
+++ b/clikt/src/commonMain/kotlin/com/github/ajalt/clikt/core/CliktCommand.kt
@@ -62,8 +62,7 @@ abstract class CliktCommand(
private val autoCompleteEnvvar: String? = "",
/**
* If true, allow multiple of this command's subcommands to be called sequentially. This will
- * disable `allowInterspersedArgs` on the context of this command and its descendants. This
- * functionality is experimental, and may change in a future release.
+ * disable `allowInterspersedArgs` on the context of this command and its descendants.
*/
internal val allowMultipleSubcommands: Boolean = false,
/**
diff --git a/clikt/src/commonMain/kotlin/com/github/ajalt/clikt/internal/Finalization.kt b/clikt/src/commonMain/kotlin/com/github/ajalt/clikt/internal/Finalization.kt
index db896a1e..e165aa9e 100644
--- a/clikt/src/commonMain/kotlin/com/github/ajalt/clikt/internal/Finalization.kt
+++ b/clikt/src/commonMain/kotlin/com/github/ajalt/clikt/internal/Finalization.kt
@@ -4,6 +4,8 @@ import com.github.ajalt.clikt.core.Abort
import com.github.ajalt.clikt.core.Context
import com.github.ajalt.clikt.core.MultiUsageError
import com.github.ajalt.clikt.core.UsageError
+import com.github.ajalt.clikt.parameters.arguments.Argument
+import com.github.ajalt.clikt.parameters.groups.ParameterGroup
import com.github.ajalt.clikt.parameters.options.Option
import com.github.ajalt.clikt.parsers.Invocation
@@ -12,45 +14,66 @@ internal fun finalizeOptions(
options: List