Add net stdlib module with URL support (#1834)

This commit is contained in:
Islon Scherer authored and GitHub committed 2026-10-06 15:23:32 +02:00
1 parent dbcecd9677
commit 862c61f2e2
46 files changed
+3682 -15

No files matched your search

@@ -845,6 +845,7 @@ class JavaCodeGenerator(
PClassInfo.Class -> PCLASS.nullableIf(nullable)
PClassInfo.Regex -> PATTERN.nullableIf(nullable)
PClassInfo.Version -> VERSION.nullableIf(nullable)
PClassInfo.Url -> URI.nullableIf(nullable)
else ->
when {
!classInfo.isStandardLibraryClass -> pClass.toJavaPoetName().nullableIf(nullable)
@@ -1159,6 +1159,52 @@ class JavaCodeGeneratorTest {
)
}
@Test
fun `pkl_net Url`() {
val javaCode =
generateJavaCode(
"""
module mod
import "pkl:net"
url: net.Url
nullableUrl: net.Url?
listing: Listing<net.Url>
mapping: Mapping<String, net.Url>
class Foo {
url: net.Url
}
"""
.trimIndent()
)
assertThat(javaCode)
.compilesSuccessfully()
.contains("import java.net.URI;")
.contains(
"""
|public final class Mod {
| public final @NonNull URI url;
|
| public final URI nullableUrl;
|
| public final @NonNull List<@NonNull URI> listing;
|
| public final @NonNull Map<@NonNull String, @NonNull URI> mapping;
"""
.trimMargin()
)
.contains(
"""
| public static final class Foo {
| public final @NonNull URI url;
"""
.trimMargin()
)
}
@Test
fun `nullable properties`() {
var javaCode =