Java String Audit for PTC-Lisp

Copy Markdown View Source

Warning: This file is auto-generated by mix ptc.gen_docs from priv/java_interop.exs. Manual edits will be overwritten. Edit priv/java_interop.exs instead.

Curated LLM-compatibility target for java.lang.String methods.

See also: Function Reference | Namespace Coverage | Clojure Core Audit | Clojure String Audit | Clojure Set Audit | Clojure Walk Audit | Java Math Audit | Java Boolean Audit | Java Double Audit | Java Float Audit | Java Integer Audit | Java Long Audit | Java System Audit | Java LocalDate Audit | Java Instant Audit | Java Duration Audit | Java Period Audit | Java Date Audit

Summary

Coverage excludes not_relevant entries: supported / (supported + candidate + not_classified).

StatusCount
Supported8
Candidate5
Not Relevant2
Not Classified0
Relevant Target13
Coverage8/13 (61.5%)
Total15

Details

VarStatusDescriptionNotes
.charAt🔲 candidateReturn character at indexPotentially useful, but PTC-Lisp must define how a Java UTF-16 char, including an isolated surrogate, is represented.
.contains✅ supportedSubstring containmentDIV-40: character literals are accepted as arguments (PTC-Lisp has no Character type). DIV-41: character-literal receivers behave as one-character strings. DIV-53: the bounded UTF-16 view rejects String inputs larger than 256,000 bytes.
.endsWith✅ supportedSuffix testDIV-40: character literals are accepted as arguments (PTC-Lisp has no Character type). DIV-41: character-literal receivers behave as one-character strings. DIV-53: the bounded UTF-16 view rejects String inputs larger than 256,000 bytes.
.equalsIgnoreCase🔲 candidateCase-insensitive string equalityCommon Java idiom in generated code.
.getBytes❌ not_relevantEncode string to bytesByte arrays and charsets are outside the sandbox data model.
.indexOf✅ supportedFirst substring indexBUG GAP-J05: integer character-code overloads are unsupported. Indexes use Java UTF-16 code units. DIV-41: character-literal receivers behave as one-character strings (PTC-Lisp has no Character type). DIV-53: the bounded UTF-16 view rejects String inputs larger than 256,000 bytes.
.intern❌ not_relevantIntern a Java stringJVM string pool operation; not meaningful on BEAM.
.isEmpty🔲 candidateReturn true for empty stringempty? covers the common PTC-Lisp need.
.lastIndexOf✅ supportedLast substring indexBUG GAP-J05: substring/from-index and integer character-code overloads are unsupported. Indexes use Java UTF-16 code units. DIV-41: character-literal receivers behave as one-character strings (PTC-Lisp has no Character type). DIV-53: the bounded UTF-16 view rejects String inputs larger than 256,000 bytes.
.length✅ supportedString lengthReturns Java UTF-16 code-unit length. DIV-41: character-literal receivers behave as one-character strings (PTC-Lisp has no Character type). DIV-53: the bounded UTF-16 view rejects String inputs larger than 256,000 bytes.
.startsWith✅ supportedPrefix testBUG GAP-J05: prefix/offset overload is unsupported. DIV-40: character literals are accepted as arguments (PTC-Lisp has no Character type). DIV-41: character-literal receivers behave as one-character strings. DIV-53: the bounded UTF-16 view rejects String inputs larger than 256,000 bytes.
.substring✅ supportedExtract substringUses Java UTF-16 code-unit indexes. DIV-41: character-literal receivers behave as one-character strings. DIV-53: ranges containing an unpaired surrogate and inputs larger than 256,000 bytes produce invalid_java_string.
.toLowerCase🔲 candidateLowercase stringDeferred until a deterministic locale and pinned Unicode-data contract are selected.
.toUpperCase🔲 candidateUppercase stringDeferred until a deterministic locale and pinned Unicode-data contract are selected.
.trim✅ supportedRemove leading and trailing code units from U+0000 through U+0020Uses Java String.trim semantics, which differ from clojure.string/trim. DIV-41: character-literal receivers behave as one-character strings. DIV-53: String inputs larger than 256,000 bytes produce invalid_java_string.