1330 lines
93 KiB
C
1330 lines
93 KiB
C
/*
|
|
* java_stdlib_data.c — Curated Java standard-library type/method registry.
|
|
*
|
|
* Strategy:
|
|
* - java.lang.* — fully covered (the implicit-import package).
|
|
* Object, String, StringBuilder, StringBuffer, CharSequence, Class,
|
|
* Throwable + the common subclass tree, Number + boxed primitives,
|
|
* Math, System, Thread, Iterable, Comparable, Cloneable, Enum, Record,
|
|
* AutoCloseable, the common Exception types.
|
|
* - java.util.* — collections + iterators + Optional + Date/Calendar +
|
|
* Arrays/Collections + Scanner/Random/UUID + Map.Entry.
|
|
* - java.io.* — streams, readers, writers, File, IOException family.
|
|
* - java.nio.file.* — Path, Paths, Files (often-used helpers).
|
|
* - java.util.function — the 21 functional interfaces.
|
|
* - java.util.stream — Stream + Collectors entry points.
|
|
* - java.util.concurrent — ExecutorService, Future, CompletableFuture,
|
|
* ConcurrentHashMap, the concurrent collection set.
|
|
* - java.time — LocalDate/LocalTime/LocalDateTime/Duration/Instant.
|
|
*
|
|
* Method signatures use registry-level fidelity: receiver, short name,
|
|
* return type. Param types are intentionally unmodeled (the resolver
|
|
* chooses overloads by arity, with type compatibility scoring breaking
|
|
* ties — see cbm_registry_lookup_method_by_args).
|
|
*
|
|
* This is the JLS-spec-aligned slice of the stdlib that 90%+ of real-world
|
|
* Java code touches.
|
|
*/
|
|
|
|
#include "../type_rep.h"
|
|
#include "../type_registry.h"
|
|
#include "../../arena.h"
|
|
#include "../java_lsp.h"
|
|
#include <string.h>
|
|
|
|
#define REG_TYPE(qn_, short_, is_iface_, parents_) \
|
|
do { \
|
|
memset(&rt, 0, sizeof(rt)); \
|
|
rt.qualified_name = (qn_); \
|
|
rt.short_name = (short_); \
|
|
rt.is_interface = (is_iface_); \
|
|
rt.embedded_types = (parents_); \
|
|
cbm_registry_add_type(reg, rt); \
|
|
} while (0)
|
|
|
|
#define REG_METHOD(class_qn_, method_name_, ret_type_) \
|
|
do { \
|
|
memset(&rf, 0, sizeof(rf)); \
|
|
rf.min_params = -1; \
|
|
rf.qualified_name = \
|
|
cbm_arena_sprintf(arena, "%s.%s", (class_qn_), (method_name_)); \
|
|
rf.short_name = (method_name_); \
|
|
rf.receiver_type = (class_qn_); \
|
|
{ \
|
|
const CBMType **rets = \
|
|
(const CBMType **)cbm_arena_alloc(arena, 2 * sizeof(*rets)); \
|
|
rets[0] = (ret_type_); \
|
|
rets[1] = NULL; \
|
|
rf.signature = cbm_type_func(arena, NULL, NULL, rets); \
|
|
} \
|
|
cbm_registry_add_func(reg, rf); \
|
|
} while (0)
|
|
|
|
#define REG_CTOR(class_qn_, short_name_) \
|
|
do { \
|
|
memset(&rf, 0, sizeof(rf)); \
|
|
rf.min_params = -1; \
|
|
rf.qualified_name = \
|
|
cbm_arena_sprintf(arena, "%s.%s", (class_qn_), (short_name_)); \
|
|
rf.short_name = (short_name_); \
|
|
rf.receiver_type = (class_qn_); \
|
|
{ \
|
|
const CBMType **rets = \
|
|
(const CBMType **)cbm_arena_alloc(arena, 2 * sizeof(*rets)); \
|
|
rets[0] = cbm_type_named(arena, (class_qn_)); \
|
|
rets[1] = NULL; \
|
|
rf.signature = cbm_type_func(arena, NULL, NULL, rets); \
|
|
} \
|
|
cbm_registry_add_func(reg, rf); \
|
|
} while (0)
|
|
|
|
#define REG_FIELD(class_qn_, name_, type_) \
|
|
do { \
|
|
const CBMRegisteredType *_existing = \
|
|
cbm_registry_lookup_type(reg, (class_qn_)); \
|
|
(void)_existing; \
|
|
/* Field append handled by REG_TYPE_FIELDS below. */ \
|
|
/* Placeholder for future per-field appends. */ \
|
|
} while (0)
|
|
|
|
void cbm_java_stdlib_register(CBMTypeRegistry *reg, CBMArena *arena) {
|
|
CBMRegisteredType rt;
|
|
CBMRegisteredFunc rf;
|
|
|
|
/* ── Type-parent lists (must be static so addresses outlive the call) ── */
|
|
static const char *no_parents[] = {NULL};
|
|
static const char *parents_object[] = {"java.lang.Object", NULL};
|
|
static const char *parents_throwable[] = {"java.lang.Object", NULL};
|
|
static const char *parents_exception[] = {"java.lang.Throwable", NULL};
|
|
static const char *parents_error[] = {"java.lang.Throwable", NULL};
|
|
static const char *parents_runtime_exc[] = {"java.lang.Exception", NULL};
|
|
static const char *parents_io_exc[] = {"java.lang.Exception", NULL};
|
|
static const char *parents_number[] = {"java.lang.Object", NULL};
|
|
static const char *parents_integer[] = {"java.lang.Number", NULL};
|
|
static const char *parents_long[] = {"java.lang.Number", NULL};
|
|
static const char *parents_double[] = {"java.lang.Number", NULL};
|
|
static const char *parents_float[] = {"java.lang.Number", NULL};
|
|
static const char *parents_short[] = {"java.lang.Number", NULL};
|
|
static const char *parents_byte[] = {"java.lang.Number", NULL};
|
|
static const char *parents_string[] = {"java.lang.Object", NULL};
|
|
static const char *parents_charseq[] = {NULL};
|
|
static const char *parents_iterable[] = {NULL};
|
|
static const char *parents_collection[] = {"java.lang.Iterable", NULL};
|
|
static const char *parents_list[] = {"java.util.Collection", NULL};
|
|
static const char *parents_set[] = {"java.util.Collection", NULL};
|
|
static const char *parents_queue[] = {"java.util.Collection", NULL};
|
|
static const char *parents_deque[] = {"java.util.Queue", NULL};
|
|
static const char *parents_map[] = {NULL};
|
|
static const char *parents_map_entry[] = {NULL};
|
|
static const char *parents_iterator[] = {NULL};
|
|
static const char *parents_arraylist[] = {"java.util.List", NULL};
|
|
static const char *parents_linkedlist[] = {"java.util.List", NULL};
|
|
static const char *parents_hashset[] = {"java.util.Set", NULL};
|
|
static const char *parents_treeset[] = {"java.util.Set", NULL};
|
|
static const char *parents_linkedhashset[] = {"java.util.Set", NULL};
|
|
static const char *parents_hashmap[] = {"java.util.Map", NULL};
|
|
static const char *parents_treemap[] = {"java.util.Map", NULL};
|
|
static const char *parents_linkedhashmap[] = {"java.util.Map", NULL};
|
|
static const char *parents_concurrent_hashmap[] = {"java.util.Map", NULL};
|
|
|
|
static const char *parents_inputstream[] = {"java.lang.AutoCloseable", NULL};
|
|
static const char *parents_outputstream[] = {"java.lang.AutoCloseable", NULL};
|
|
static const char *parents_reader[] = {"java.lang.AutoCloseable", NULL};
|
|
static const char *parents_writer[] = {"java.lang.AutoCloseable", NULL};
|
|
static const char *parents_buffered_reader[] = {"java.io.Reader", NULL};
|
|
static const char *parents_buffered_writer[] = {"java.io.Writer", NULL};
|
|
static const char *parents_print_stream[] = {"java.io.OutputStream", NULL};
|
|
static const char *parents_print_writer[] = {"java.io.Writer", NULL};
|
|
static const char *parents_file_input_stream[] = {"java.io.InputStream", NULL};
|
|
static const char *parents_file_output_stream[] = {"java.io.OutputStream", NULL};
|
|
static const char *parents_file_reader[] = {"java.io.Reader", NULL};
|
|
static const char *parents_file_writer[] = {"java.io.Writer", NULL};
|
|
static const char *parents_io_exception[] = {"java.lang.Exception", NULL};
|
|
static const char *parents_runtime_exc_chain[] = {"java.lang.RuntimeException", NULL};
|
|
/* Parent lists for types previously registered with inline compound
|
|
* literals. A compound literal has automatic (block) storage duration,
|
|
* so storing its address into the registry left a dangling stack pointer
|
|
* once the REG_TYPE statement's block ended — an AddressSanitizer
|
|
* stack-use-after-scope when the inheritance walk later read
|
|
* rt->embedded_types[0]. These must be static so their addresses outlive
|
|
* the call, exactly like the parent lists above. */
|
|
static const char *parents_gregorian_calendar[] = {"java.util.Calendar", NULL};
|
|
static const char *parents_file_not_found_exc[] = {"java.io.IOException", NULL};
|
|
static const char *parents_closeable[] = {"java.lang.AutoCloseable", NULL};
|
|
static const char *parents_unary_operator[] = {"java.util.function.Function", NULL};
|
|
static const char *parents_binary_operator[] = {"java.util.function.BiFunction", NULL};
|
|
static const char *parents_completable_future[] = {"java.util.concurrent.Future", NULL};
|
|
static const char *parents_reentrant_lock[] = {"java.util.concurrent.locks.Lock", NULL};
|
|
|
|
/* ── java.lang ─────────────────────────────────────────────── */
|
|
REG_TYPE("java.lang.Object", "Object", false, no_parents);
|
|
REG_TYPE("java.lang.Class", "Class", false, parents_object);
|
|
REG_TYPE("java.lang.ClassLoader", "ClassLoader", false, parents_object);
|
|
REG_TYPE("java.lang.CharSequence", "CharSequence", true, parents_charseq);
|
|
REG_TYPE("java.lang.String", "String", false, parents_string);
|
|
REG_TYPE("java.lang.StringBuilder", "StringBuilder", false, parents_object);
|
|
REG_TYPE("java.lang.StringBuffer", "StringBuffer", false, parents_object);
|
|
REG_TYPE("java.lang.Number", "Number", false, parents_number);
|
|
REG_TYPE("java.lang.Integer", "Integer", false, parents_integer);
|
|
REG_TYPE("java.lang.Long", "Long", false, parents_long);
|
|
REG_TYPE("java.lang.Short", "Short", false, parents_short);
|
|
REG_TYPE("java.lang.Byte", "Byte", false, parents_byte);
|
|
REG_TYPE("java.lang.Float", "Float", false, parents_float);
|
|
REG_TYPE("java.lang.Double", "Double", false, parents_double);
|
|
REG_TYPE("java.lang.Boolean", "Boolean", false, parents_object);
|
|
REG_TYPE("java.lang.Character", "Character", false, parents_object);
|
|
REG_TYPE("java.lang.Void", "Void", false, parents_object);
|
|
REG_TYPE("java.lang.Iterable", "Iterable", true, parents_iterable);
|
|
REG_TYPE("java.lang.Comparable", "Comparable", true, no_parents);
|
|
REG_TYPE("java.lang.Cloneable", "Cloneable", true, no_parents);
|
|
REG_TYPE("java.lang.Runnable", "Runnable", true, no_parents);
|
|
REG_TYPE("java.lang.AutoCloseable", "AutoCloseable", true, no_parents);
|
|
REG_TYPE("java.lang.Math", "Math", false, parents_object);
|
|
REG_TYPE("java.lang.System", "System", false, parents_object);
|
|
REG_TYPE("java.lang.Thread", "Thread", false, parents_object);
|
|
REG_TYPE("java.lang.Process", "Process", false, parents_object);
|
|
REG_TYPE("java.lang.ProcessBuilder", "ProcessBuilder", false, parents_object);
|
|
REG_TYPE("java.lang.StackTraceElement", "StackTraceElement", false, parents_object);
|
|
REG_TYPE("java.lang.Enum", "Enum", false, parents_object);
|
|
REG_TYPE("java.lang.Record", "Record", false, parents_object);
|
|
REG_TYPE("java.lang.Throwable", "Throwable", false, parents_throwable);
|
|
REG_TYPE("java.lang.Exception", "Exception", false, parents_exception);
|
|
REG_TYPE("java.lang.Error", "Error", false, parents_error);
|
|
REG_TYPE("java.lang.RuntimeException", "RuntimeException", false, parents_runtime_exc);
|
|
REG_TYPE("java.lang.NullPointerException", "NullPointerException", false,
|
|
parents_runtime_exc_chain);
|
|
REG_TYPE("java.lang.IllegalArgumentException", "IllegalArgumentException", false,
|
|
parents_runtime_exc_chain);
|
|
REG_TYPE("java.lang.IllegalStateException", "IllegalStateException", false,
|
|
parents_runtime_exc_chain);
|
|
REG_TYPE("java.lang.IndexOutOfBoundsException", "IndexOutOfBoundsException", false,
|
|
parents_runtime_exc_chain);
|
|
REG_TYPE("java.lang.ArrayIndexOutOfBoundsException", "ArrayIndexOutOfBoundsException", false,
|
|
parents_runtime_exc_chain);
|
|
REG_TYPE("java.lang.ArithmeticException", "ArithmeticException", false,
|
|
parents_runtime_exc_chain);
|
|
REG_TYPE("java.lang.ClassCastException", "ClassCastException", false,
|
|
parents_runtime_exc_chain);
|
|
REG_TYPE("java.lang.ClassNotFoundException", "ClassNotFoundException", false,
|
|
parents_exception);
|
|
REG_TYPE("java.lang.NumberFormatException", "NumberFormatException", false,
|
|
parents_runtime_exc_chain);
|
|
REG_TYPE("java.lang.UnsupportedOperationException", "UnsupportedOperationException", false,
|
|
parents_runtime_exc_chain);
|
|
REG_TYPE("java.lang.InterruptedException", "InterruptedException", false, parents_exception);
|
|
REG_TYPE("java.lang.SecurityException", "SecurityException", false,
|
|
parents_runtime_exc_chain);
|
|
REG_TYPE("java.lang.NoSuchMethodException", "NoSuchMethodException", false, parents_exception);
|
|
REG_TYPE("java.lang.NoSuchFieldException", "NoSuchFieldException", false, parents_exception);
|
|
|
|
/* Annotation-marker types. */
|
|
REG_TYPE("java.lang.Override", "Override", true, no_parents);
|
|
REG_TYPE("java.lang.Deprecated", "Deprecated", true, no_parents);
|
|
REG_TYPE("java.lang.SuppressWarnings", "SuppressWarnings", true, no_parents);
|
|
REG_TYPE("java.lang.FunctionalInterface", "FunctionalInterface", true, no_parents);
|
|
|
|
/* ── Object methods ───────────────────────────────────────── */
|
|
REG_METHOD("java.lang.Object", "toString", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.lang.Object", "hashCode", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.lang.Object", "equals", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.lang.Object", "getClass", cbm_type_named(arena, "java.lang.Class"));
|
|
REG_METHOD("java.lang.Object", "wait", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.lang.Object", "notify", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.lang.Object", "notifyAll", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.lang.Object", "clone", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.lang.Object", "finalize", cbm_type_builtin(arena, "void"));
|
|
|
|
/* ── String methods ───────────────────────────────────────── */
|
|
REG_METHOD("java.lang.String", "length", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.lang.String", "isEmpty", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.lang.String", "isBlank", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.lang.String", "charAt", cbm_type_builtin(arena, "char"));
|
|
REG_METHOD("java.lang.String", "codePointAt", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.lang.String", "equals", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.lang.String", "equalsIgnoreCase", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.lang.String", "compareTo", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.lang.String", "compareToIgnoreCase", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.lang.String", "indexOf", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.lang.String", "lastIndexOf", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.lang.String", "contains", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.lang.String", "startsWith", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.lang.String", "endsWith", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.lang.String", "matches", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.lang.String", "concat", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.lang.String", "substring", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.lang.String", "trim", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.lang.String", "strip", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.lang.String", "stripLeading", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.lang.String", "stripTrailing", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.lang.String", "toLowerCase", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.lang.String", "toUpperCase", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.lang.String", "replace", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.lang.String", "replaceAll", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.lang.String", "replaceFirst", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.lang.String", "split",
|
|
cbm_type_slice(arena, cbm_type_named(arena, "java.lang.String")));
|
|
REG_METHOD("java.lang.String", "toCharArray", cbm_type_slice(arena, cbm_type_builtin(arena, "char")));
|
|
REG_METHOD("java.lang.String", "getBytes", cbm_type_slice(arena, cbm_type_builtin(arena, "byte")));
|
|
REG_METHOD("java.lang.String", "intern", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.lang.String", "format", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.lang.String", "valueOf", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.lang.String", "join", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.lang.String", "repeat", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.lang.String", "lines", cbm_type_named(arena, "java.util.stream.Stream"));
|
|
REG_METHOD("java.lang.String", "chars", cbm_type_named(arena, "java.util.stream.IntStream"));
|
|
REG_METHOD("java.lang.String", "codePoints",
|
|
cbm_type_named(arena, "java.util.stream.IntStream"));
|
|
REG_METHOD("java.lang.String", "hashCode", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.lang.String", "toString", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.lang.String", "toCharArray", cbm_type_slice(arena, cbm_type_builtin(arena, "char")));
|
|
REG_CTOR("java.lang.String", "String");
|
|
|
|
/* ── StringBuilder / StringBuffer ─────────────────────────── */
|
|
REG_METHOD("java.lang.StringBuilder", "append",
|
|
cbm_type_named(arena, "java.lang.StringBuilder"));
|
|
REG_METHOD("java.lang.StringBuilder", "insert",
|
|
cbm_type_named(arena, "java.lang.StringBuilder"));
|
|
REG_METHOD("java.lang.StringBuilder", "delete",
|
|
cbm_type_named(arena, "java.lang.StringBuilder"));
|
|
REG_METHOD("java.lang.StringBuilder", "deleteCharAt",
|
|
cbm_type_named(arena, "java.lang.StringBuilder"));
|
|
REG_METHOD("java.lang.StringBuilder", "replace",
|
|
cbm_type_named(arena, "java.lang.StringBuilder"));
|
|
REG_METHOD("java.lang.StringBuilder", "reverse",
|
|
cbm_type_named(arena, "java.lang.StringBuilder"));
|
|
REG_METHOD("java.lang.StringBuilder", "toString",
|
|
cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.lang.StringBuilder", "length", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.lang.StringBuilder", "charAt", cbm_type_builtin(arena, "char"));
|
|
REG_METHOD("java.lang.StringBuilder", "setLength", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.lang.StringBuilder", "indexOf", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.lang.StringBuilder", "substring",
|
|
cbm_type_named(arena, "java.lang.String"));
|
|
REG_CTOR("java.lang.StringBuilder", "StringBuilder");
|
|
|
|
REG_METHOD("java.lang.StringBuffer", "append",
|
|
cbm_type_named(arena, "java.lang.StringBuffer"));
|
|
REG_METHOD("java.lang.StringBuffer", "toString",
|
|
cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.lang.StringBuffer", "length", cbm_type_builtin(arena, "int"));
|
|
REG_CTOR("java.lang.StringBuffer", "StringBuffer");
|
|
|
|
/* ── CharSequence ─────────────────────────────────────────── */
|
|
REG_METHOD("java.lang.CharSequence", "length", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.lang.CharSequence", "charAt", cbm_type_builtin(arena, "char"));
|
|
REG_METHOD("java.lang.CharSequence", "subSequence",
|
|
cbm_type_named(arena, "java.lang.CharSequence"));
|
|
REG_METHOD("java.lang.CharSequence", "toString",
|
|
cbm_type_named(arena, "java.lang.String"));
|
|
|
|
/* ── Number + boxed types ─────────────────────────────────── */
|
|
REG_METHOD("java.lang.Number", "intValue", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.lang.Number", "longValue", cbm_type_builtin(arena, "long"));
|
|
REG_METHOD("java.lang.Number", "doubleValue", cbm_type_builtin(arena, "double"));
|
|
REG_METHOD("java.lang.Number", "floatValue", cbm_type_builtin(arena, "float"));
|
|
REG_METHOD("java.lang.Number", "shortValue", cbm_type_builtin(arena, "short"));
|
|
REG_METHOD("java.lang.Number", "byteValue", cbm_type_builtin(arena, "byte"));
|
|
|
|
REG_METHOD("java.lang.Integer", "intValue", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.lang.Integer", "parseInt", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.lang.Integer", "valueOf", cbm_type_named(arena, "java.lang.Integer"));
|
|
REG_METHOD("java.lang.Integer", "toString", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.lang.Integer", "compare", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.lang.Integer", "compareTo", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.lang.Integer", "equals", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.lang.Integer", "hashCode", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.lang.Integer", "max", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.lang.Integer", "min", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.lang.Integer", "sum", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.lang.Integer", "bitCount", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.lang.Integer", "toBinaryString", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.lang.Integer", "toHexString", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.lang.Integer", "toOctalString", cbm_type_named(arena, "java.lang.String"));
|
|
|
|
REG_METHOD("java.lang.Long", "longValue", cbm_type_builtin(arena, "long"));
|
|
REG_METHOD("java.lang.Long", "parseLong", cbm_type_builtin(arena, "long"));
|
|
REG_METHOD("java.lang.Long", "valueOf", cbm_type_named(arena, "java.lang.Long"));
|
|
REG_METHOD("java.lang.Long", "toString", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.lang.Long", "compareTo", cbm_type_builtin(arena, "int"));
|
|
|
|
REG_METHOD("java.lang.Double", "doubleValue", cbm_type_builtin(arena, "double"));
|
|
REG_METHOD("java.lang.Double", "parseDouble", cbm_type_builtin(arena, "double"));
|
|
REG_METHOD("java.lang.Double", "valueOf", cbm_type_named(arena, "java.lang.Double"));
|
|
REG_METHOD("java.lang.Double", "toString", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.lang.Double", "isNaN", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.lang.Double", "isInfinite", cbm_type_builtin(arena, "boolean"));
|
|
|
|
REG_METHOD("java.lang.Float", "floatValue", cbm_type_builtin(arena, "float"));
|
|
REG_METHOD("java.lang.Float", "parseFloat", cbm_type_builtin(arena, "float"));
|
|
REG_METHOD("java.lang.Float", "valueOf", cbm_type_named(arena, "java.lang.Float"));
|
|
|
|
REG_METHOD("java.lang.Boolean", "booleanValue", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.lang.Boolean", "parseBoolean", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.lang.Boolean", "valueOf", cbm_type_named(arena, "java.lang.Boolean"));
|
|
REG_METHOD("java.lang.Boolean", "toString", cbm_type_named(arena, "java.lang.String"));
|
|
|
|
REG_METHOD("java.lang.Character", "charValue", cbm_type_builtin(arena, "char"));
|
|
REG_METHOD("java.lang.Character", "isDigit", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.lang.Character", "isLetter", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.lang.Character", "isLetterOrDigit", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.lang.Character", "isWhitespace", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.lang.Character", "isUpperCase", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.lang.Character", "isLowerCase", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.lang.Character", "toUpperCase", cbm_type_builtin(arena, "char"));
|
|
REG_METHOD("java.lang.Character", "toLowerCase", cbm_type_builtin(arena, "char"));
|
|
REG_METHOD("java.lang.Character", "getNumericValue", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.lang.Character", "valueOf", cbm_type_named(arena, "java.lang.Character"));
|
|
|
|
REG_METHOD("java.lang.Byte", "byteValue", cbm_type_builtin(arena, "byte"));
|
|
REG_METHOD("java.lang.Byte", "parseByte", cbm_type_builtin(arena, "byte"));
|
|
REG_METHOD("java.lang.Byte", "valueOf", cbm_type_named(arena, "java.lang.Byte"));
|
|
|
|
REG_METHOD("java.lang.Short", "shortValue", cbm_type_builtin(arena, "short"));
|
|
REG_METHOD("java.lang.Short", "parseShort", cbm_type_builtin(arena, "short"));
|
|
REG_METHOD("java.lang.Short", "valueOf", cbm_type_named(arena, "java.lang.Short"));
|
|
|
|
/* ── Math ─────────────────────────────────────────────────── */
|
|
REG_METHOD("java.lang.Math", "abs", cbm_type_builtin(arena, "double"));
|
|
REG_METHOD("java.lang.Math", "min", cbm_type_builtin(arena, "double"));
|
|
REG_METHOD("java.lang.Math", "max", cbm_type_builtin(arena, "double"));
|
|
REG_METHOD("java.lang.Math", "sqrt", cbm_type_builtin(arena, "double"));
|
|
REG_METHOD("java.lang.Math", "cbrt", cbm_type_builtin(arena, "double"));
|
|
REG_METHOD("java.lang.Math", "pow", cbm_type_builtin(arena, "double"));
|
|
REG_METHOD("java.lang.Math", "exp", cbm_type_builtin(arena, "double"));
|
|
REG_METHOD("java.lang.Math", "log", cbm_type_builtin(arena, "double"));
|
|
REG_METHOD("java.lang.Math", "log10", cbm_type_builtin(arena, "double"));
|
|
REG_METHOD("java.lang.Math", "sin", cbm_type_builtin(arena, "double"));
|
|
REG_METHOD("java.lang.Math", "cos", cbm_type_builtin(arena, "double"));
|
|
REG_METHOD("java.lang.Math", "tan", cbm_type_builtin(arena, "double"));
|
|
REG_METHOD("java.lang.Math", "asin", cbm_type_builtin(arena, "double"));
|
|
REG_METHOD("java.lang.Math", "acos", cbm_type_builtin(arena, "double"));
|
|
REG_METHOD("java.lang.Math", "atan", cbm_type_builtin(arena, "double"));
|
|
REG_METHOD("java.lang.Math", "atan2", cbm_type_builtin(arena, "double"));
|
|
REG_METHOD("java.lang.Math", "floor", cbm_type_builtin(arena, "double"));
|
|
REG_METHOD("java.lang.Math", "ceil", cbm_type_builtin(arena, "double"));
|
|
REG_METHOD("java.lang.Math", "round", cbm_type_builtin(arena, "long"));
|
|
REG_METHOD("java.lang.Math", "random", cbm_type_builtin(arena, "double"));
|
|
REG_METHOD("java.lang.Math", "signum", cbm_type_builtin(arena, "double"));
|
|
REG_METHOD("java.lang.Math", "hypot", cbm_type_builtin(arena, "double"));
|
|
REG_METHOD("java.lang.Math", "floorDiv", cbm_type_builtin(arena, "long"));
|
|
REG_METHOD("java.lang.Math", "floorMod", cbm_type_builtin(arena, "long"));
|
|
REG_METHOD("java.lang.Math", "addExact", cbm_type_builtin(arena, "long"));
|
|
REG_METHOD("java.lang.Math", "subtractExact", cbm_type_builtin(arena, "long"));
|
|
REG_METHOD("java.lang.Math", "multiplyExact", cbm_type_builtin(arena, "long"));
|
|
REG_METHOD("java.lang.Math", "toRadians", cbm_type_builtin(arena, "double"));
|
|
REG_METHOD("java.lang.Math", "toDegrees", cbm_type_builtin(arena, "double"));
|
|
|
|
/* ── System ───────────────────────────────────────────────── */
|
|
REG_METHOD("java.lang.System", "currentTimeMillis", cbm_type_builtin(arena, "long"));
|
|
REG_METHOD("java.lang.System", "nanoTime", cbm_type_builtin(arena, "long"));
|
|
REG_METHOD("java.lang.System", "exit", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.lang.System", "getenv", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.lang.System", "getProperty", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.lang.System", "setProperty", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.lang.System", "lineSeparator", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.lang.System", "arraycopy", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.lang.System", "identityHashCode", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.lang.System", "gc", cbm_type_builtin(arena, "void"));
|
|
|
|
/* ── Thread ───────────────────────────────────────────────── */
|
|
REG_METHOD("java.lang.Thread", "start", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.lang.Thread", "run", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.lang.Thread", "join", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.lang.Thread", "interrupt", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.lang.Thread", "isAlive", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.lang.Thread", "sleep", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.lang.Thread", "currentThread", cbm_type_named(arena, "java.lang.Thread"));
|
|
REG_METHOD("java.lang.Thread", "yield", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.lang.Thread", "getName", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.lang.Thread", "setName", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.lang.Thread", "getId", cbm_type_builtin(arena, "long"));
|
|
REG_METHOD("java.lang.Thread", "isInterrupted", cbm_type_builtin(arena, "boolean"));
|
|
|
|
/* ── Class ────────────────────────────────────────────────── */
|
|
REG_METHOD("java.lang.Class", "getName", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.lang.Class", "getSimpleName", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.lang.Class", "getCanonicalName", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.lang.Class", "isInterface", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.lang.Class", "isArray", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.lang.Class", "isAssignableFrom", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.lang.Class", "isInstance", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.lang.Class", "newInstance", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.lang.Class", "forName", cbm_type_named(arena, "java.lang.Class"));
|
|
REG_METHOD("java.lang.Class", "getSuperclass", cbm_type_named(arena, "java.lang.Class"));
|
|
REG_METHOD("java.lang.Class", "getInterfaces",
|
|
cbm_type_slice(arena, cbm_type_named(arena, "java.lang.Class")));
|
|
|
|
/* ── Iterable / Iterator ──────────────────────────────────── */
|
|
REG_METHOD("java.lang.Iterable", "iterator", cbm_type_named(arena, "java.util.Iterator"));
|
|
REG_METHOD("java.lang.Iterable", "forEach", cbm_type_builtin(arena, "void"));
|
|
|
|
/* ── Throwable methods ────────────────────────────────────── */
|
|
REG_METHOD("java.lang.Throwable", "getMessage", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.lang.Throwable", "getLocalizedMessage",
|
|
cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.lang.Throwable", "getCause", cbm_type_named(arena, "java.lang.Throwable"));
|
|
REG_METHOD("java.lang.Throwable", "initCause",
|
|
cbm_type_named(arena, "java.lang.Throwable"));
|
|
REG_METHOD("java.lang.Throwable", "printStackTrace", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.lang.Throwable", "toString", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.lang.Throwable", "getStackTrace",
|
|
cbm_type_slice(arena, cbm_type_named(arena, "java.lang.StackTraceElement")));
|
|
|
|
/* ── AutoCloseable ────────────────────────────────────────── */
|
|
REG_METHOD("java.lang.AutoCloseable", "close", cbm_type_builtin(arena, "void"));
|
|
|
|
/* ── Comparable ───────────────────────────────────────────── */
|
|
REG_METHOD("java.lang.Comparable", "compareTo", cbm_type_builtin(arena, "int"));
|
|
|
|
/* ── Runnable ─────────────────────────────────────────────── */
|
|
REG_METHOD("java.lang.Runnable", "run", cbm_type_builtin(arena, "void"));
|
|
|
|
/* ── java.util ────────────────────────────────────────────── */
|
|
REG_TYPE("java.util.Collection", "Collection", true, parents_collection);
|
|
REG_TYPE("java.util.List", "List", true, parents_list);
|
|
REG_TYPE("java.util.Set", "Set", true, parents_set);
|
|
REG_TYPE("java.util.Queue", "Queue", true, parents_queue);
|
|
REG_TYPE("java.util.Deque", "Deque", true, parents_deque);
|
|
REG_TYPE("java.util.Map", "Map", true, parents_map);
|
|
REG_TYPE("java.util.Map.Entry", "Entry", true, parents_map_entry);
|
|
REG_TYPE("java.util.Iterator", "Iterator", true, parents_iterator);
|
|
REG_TYPE("java.util.ListIterator", "ListIterator", true, parents_iterator);
|
|
REG_TYPE("java.util.Spliterator", "Spliterator", true, no_parents);
|
|
REG_TYPE("java.util.Comparator", "Comparator", true, no_parents);
|
|
|
|
REG_TYPE("java.util.ArrayList", "ArrayList", false, parents_arraylist);
|
|
REG_TYPE("java.util.LinkedList", "LinkedList", false, parents_linkedlist);
|
|
REG_TYPE("java.util.Vector", "Vector", false, parents_arraylist);
|
|
REG_TYPE("java.util.Stack", "Stack", false, parents_arraylist);
|
|
REG_TYPE("java.util.HashSet", "HashSet", false, parents_hashset);
|
|
REG_TYPE("java.util.TreeSet", "TreeSet", false, parents_treeset);
|
|
REG_TYPE("java.util.LinkedHashSet", "LinkedHashSet", false, parents_linkedhashset);
|
|
REG_TYPE("java.util.HashMap", "HashMap", false, parents_hashmap);
|
|
REG_TYPE("java.util.TreeMap", "TreeMap", false, parents_treemap);
|
|
REG_TYPE("java.util.LinkedHashMap", "LinkedHashMap", false, parents_linkedhashmap);
|
|
REG_TYPE("java.util.ArrayDeque", "ArrayDeque", false, parents_deque);
|
|
REG_TYPE("java.util.PriorityQueue", "PriorityQueue", false, parents_queue);
|
|
|
|
REG_TYPE("java.util.Optional", "Optional", false, parents_object);
|
|
REG_TYPE("java.util.OptionalInt", "OptionalInt", false, parents_object);
|
|
REG_TYPE("java.util.OptionalLong", "OptionalLong", false, parents_object);
|
|
REG_TYPE("java.util.OptionalDouble", "OptionalDouble", false, parents_object);
|
|
REG_TYPE("java.util.Date", "Date", false, parents_object);
|
|
REG_TYPE("java.util.Calendar", "Calendar", false, parents_object);
|
|
REG_TYPE("java.util.GregorianCalendar", "GregorianCalendar", false,
|
|
parents_gregorian_calendar);
|
|
REG_TYPE("java.util.TimeZone", "TimeZone", false, parents_object);
|
|
REG_TYPE("java.util.Locale", "Locale", false, parents_object);
|
|
REG_TYPE("java.util.UUID", "UUID", false, parents_object);
|
|
REG_TYPE("java.util.Random", "Random", false, parents_object);
|
|
REG_TYPE("java.util.Scanner", "Scanner", false, parents_object);
|
|
REG_TYPE("java.util.Arrays", "Arrays", false, parents_object);
|
|
REG_TYPE("java.util.Collections", "Collections", false, parents_object);
|
|
REG_TYPE("java.util.Objects", "Objects", false, parents_object);
|
|
REG_TYPE("java.util.Properties", "Properties", false, parents_hashmap);
|
|
REG_TYPE("java.util.regex.Pattern", "Pattern", false, parents_object);
|
|
REG_TYPE("java.util.regex.Matcher", "Matcher", false, parents_object);
|
|
|
|
/* ── Collection methods ───────────────────────────────────── */
|
|
REG_METHOD("java.util.Collection", "size", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.util.Collection", "isEmpty", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.Collection", "contains", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.Collection", "containsAll", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.Collection", "iterator", cbm_type_named(arena, "java.util.Iterator"));
|
|
REG_METHOD("java.util.Collection", "toArray",
|
|
cbm_type_slice(arena, cbm_type_named(arena, "java.lang.Object")));
|
|
REG_METHOD("java.util.Collection", "add", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.Collection", "addAll", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.Collection", "remove", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.Collection", "removeAll", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.Collection", "retainAll", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.Collection", "clear", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.util.Collection", "stream",
|
|
cbm_type_named(arena, "java.util.stream.Stream"));
|
|
REG_METHOD("java.util.Collection", "parallelStream",
|
|
cbm_type_named(arena, "java.util.stream.Stream"));
|
|
REG_METHOD("java.util.Collection", "forEach", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.util.Collection", "removeIf", cbm_type_builtin(arena, "boolean"));
|
|
|
|
/* ── List methods ─────────────────────────────────────────── */
|
|
REG_METHOD("java.util.List", "get", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.List", "set", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.List", "add", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.List", "remove", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.List", "indexOf", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.util.List", "lastIndexOf", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.util.List", "subList", cbm_type_named(arena, "java.util.List"));
|
|
REG_METHOD("java.util.List", "of", cbm_type_named(arena, "java.util.List"));
|
|
REG_METHOD("java.util.List", "copyOf", cbm_type_named(arena, "java.util.List"));
|
|
REG_METHOD("java.util.List", "size", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.util.List", "isEmpty", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.List", "contains", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.List", "iterator", cbm_type_named(arena, "java.util.Iterator"));
|
|
REG_METHOD("java.util.List", "stream",
|
|
cbm_type_named(arena, "java.util.stream.Stream"));
|
|
REG_METHOD("java.util.List", "forEach", cbm_type_builtin(arena, "void"));
|
|
|
|
/* ── ArrayList ────────────────────────────────────────────── */
|
|
REG_METHOD("java.util.ArrayList", "get", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.ArrayList", "set", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.ArrayList", "add", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.ArrayList", "remove", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.ArrayList", "size", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.util.ArrayList", "isEmpty", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.ArrayList", "indexOf", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.util.ArrayList", "iterator", cbm_type_named(arena, "java.util.Iterator"));
|
|
REG_METHOD("java.util.ArrayList", "clear", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.util.ArrayList", "stream",
|
|
cbm_type_named(arena, "java.util.stream.Stream"));
|
|
REG_METHOD("java.util.ArrayList", "toArray",
|
|
cbm_type_slice(arena, cbm_type_named(arena, "java.lang.Object")));
|
|
REG_METHOD("java.util.ArrayList", "subList", cbm_type_named(arena, "java.util.List"));
|
|
REG_METHOD("java.util.ArrayList", "trimToSize", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.util.ArrayList", "ensureCapacity", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.util.ArrayList", "forEach", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.util.ArrayList", "removeIf", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.List", "removeIf", cbm_type_builtin(arena, "boolean"));
|
|
REG_CTOR("java.util.ArrayList", "ArrayList");
|
|
|
|
REG_METHOD("java.util.LinkedList", "addFirst", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.util.LinkedList", "addLast", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.util.LinkedList", "removeFirst", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.LinkedList", "removeLast", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.LinkedList", "getFirst", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.LinkedList", "getLast", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.LinkedList", "peek", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.LinkedList", "poll", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.LinkedList", "offer", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.LinkedList", "size", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.util.LinkedList", "iterator", cbm_type_named(arena, "java.util.Iterator"));
|
|
REG_CTOR("java.util.LinkedList", "LinkedList");
|
|
|
|
/* ── Set methods ──────────────────────────────────────────── */
|
|
REG_METHOD("java.util.Set", "size", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.util.Set", "isEmpty", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.Set", "contains", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.Set", "add", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.Set", "remove", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.Set", "iterator", cbm_type_named(arena, "java.util.Iterator"));
|
|
REG_METHOD("java.util.Set", "of", cbm_type_named(arena, "java.util.Set"));
|
|
REG_METHOD("java.util.Set", "copyOf", cbm_type_named(arena, "java.util.Set"));
|
|
REG_METHOD("java.util.Set", "stream",
|
|
cbm_type_named(arena, "java.util.stream.Stream"));
|
|
REG_METHOD("java.util.Set", "forEach", cbm_type_builtin(arena, "void"));
|
|
|
|
REG_METHOD("java.util.HashSet", "add", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.HashSet", "remove", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.HashSet", "contains", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.HashSet", "size", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.util.HashSet", "isEmpty", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.HashSet", "iterator", cbm_type_named(arena, "java.util.Iterator"));
|
|
REG_METHOD("java.util.HashSet", "clear", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.util.HashSet", "stream",
|
|
cbm_type_named(arena, "java.util.stream.Stream"));
|
|
REG_CTOR("java.util.HashSet", "HashSet");
|
|
|
|
REG_METHOD("java.util.TreeSet", "first", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.TreeSet", "last", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.TreeSet", "headSet", cbm_type_named(arena, "java.util.SortedSet"));
|
|
REG_METHOD("java.util.TreeSet", "tailSet", cbm_type_named(arena, "java.util.SortedSet"));
|
|
REG_CTOR("java.util.TreeSet", "TreeSet");
|
|
|
|
REG_CTOR("java.util.LinkedHashSet", "LinkedHashSet");
|
|
|
|
/* ── Map methods ──────────────────────────────────────────── */
|
|
REG_METHOD("java.util.Map", "get", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.Map", "put", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.Map", "remove", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.Map", "containsKey", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.Map", "containsValue", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.Map", "keySet", cbm_type_named(arena, "java.util.Set"));
|
|
REG_METHOD("java.util.Map", "values", cbm_type_named(arena, "java.util.Collection"));
|
|
REG_METHOD("java.util.Map", "entrySet", cbm_type_named(arena, "java.util.Set"));
|
|
REG_METHOD("java.util.Map", "size", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.util.Map", "isEmpty", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.Map", "putAll", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.util.Map", "clear", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.util.Map", "getOrDefault", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.Map", "putIfAbsent", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.Map", "computeIfAbsent", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.Map", "compute", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.Map", "merge", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.Map", "of", cbm_type_named(arena, "java.util.Map"));
|
|
REG_METHOD("java.util.Map", "copyOf", cbm_type_named(arena, "java.util.Map"));
|
|
REG_METHOD("java.util.Map", "ofEntries", cbm_type_named(arena, "java.util.Map"));
|
|
REG_METHOD("java.util.Map", "entry", cbm_type_named(arena, "java.util.Map.Entry"));
|
|
REG_METHOD("java.util.Map", "forEach", cbm_type_builtin(arena, "void"));
|
|
|
|
REG_METHOD("java.util.Map.Entry", "getKey", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.Map.Entry", "getValue", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.Map.Entry", "setValue", cbm_type_named(arena, "java.lang.Object"));
|
|
|
|
REG_METHOD("java.util.HashMap", "get", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.HashMap", "put", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.HashMap", "remove", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.HashMap", "containsKey", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.HashMap", "containsValue", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.HashMap", "size", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.util.HashMap", "isEmpty", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.HashMap", "keySet", cbm_type_named(arena, "java.util.Set"));
|
|
REG_METHOD("java.util.HashMap", "values", cbm_type_named(arena, "java.util.Collection"));
|
|
REG_METHOD("java.util.HashMap", "entrySet", cbm_type_named(arena, "java.util.Set"));
|
|
REG_METHOD("java.util.HashMap", "clear", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.util.HashMap", "getOrDefault", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.HashMap", "putIfAbsent", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.HashMap", "forEach", cbm_type_builtin(arena, "void"));
|
|
REG_CTOR("java.util.HashMap", "HashMap");
|
|
|
|
REG_METHOD("java.util.TreeMap", "firstKey", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.TreeMap", "lastKey", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.TreeMap", "headMap", cbm_type_named(arena, "java.util.SortedMap"));
|
|
REG_METHOD("java.util.TreeMap", "tailMap", cbm_type_named(arena, "java.util.SortedMap"));
|
|
REG_CTOR("java.util.TreeMap", "TreeMap");
|
|
|
|
REG_CTOR("java.util.LinkedHashMap", "LinkedHashMap");
|
|
|
|
/* ── Iterator methods ─────────────────────────────────────── */
|
|
REG_METHOD("java.util.Iterator", "hasNext", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.Iterator", "next", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.Iterator", "remove", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.util.Iterator", "forEachRemaining", cbm_type_builtin(arena, "void"));
|
|
|
|
/* ── Optional ─────────────────────────────────────────────── */
|
|
REG_METHOD("java.util.Optional", "get", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.Optional", "isPresent", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.Optional", "isEmpty", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.Optional", "orElse", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.Optional", "orElseGet", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.Optional", "orElseThrow", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.Optional", "ifPresent", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.util.Optional", "ifPresentOrElse", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.util.Optional", "map", cbm_type_named(arena, "java.util.Optional"));
|
|
REG_METHOD("java.util.Optional", "flatMap", cbm_type_named(arena, "java.util.Optional"));
|
|
REG_METHOD("java.util.Optional", "filter", cbm_type_named(arena, "java.util.Optional"));
|
|
REG_METHOD("java.util.Optional", "of", cbm_type_named(arena, "java.util.Optional"));
|
|
REG_METHOD("java.util.Optional", "ofNullable", cbm_type_named(arena, "java.util.Optional"));
|
|
REG_METHOD("java.util.Optional", "empty", cbm_type_named(arena, "java.util.Optional"));
|
|
REG_METHOD("java.util.Optional", "stream",
|
|
cbm_type_named(arena, "java.util.stream.Stream"));
|
|
|
|
/* ── Arrays / Collections / Objects helpers ───────────────── */
|
|
REG_METHOD("java.util.Arrays", "asList", cbm_type_named(arena, "java.util.List"));
|
|
REG_METHOD("java.util.Arrays", "stream",
|
|
cbm_type_named(arena, "java.util.stream.Stream"));
|
|
REG_METHOD("java.util.Arrays", "sort", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.util.Arrays", "binarySearch", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.util.Arrays", "fill", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.util.Arrays", "copyOf",
|
|
cbm_type_slice(arena, cbm_type_named(arena, "java.lang.Object")));
|
|
REG_METHOD("java.util.Arrays", "copyOfRange",
|
|
cbm_type_slice(arena, cbm_type_named(arena, "java.lang.Object")));
|
|
REG_METHOD("java.util.Arrays", "equals", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.Arrays", "hashCode", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.util.Arrays", "toString", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.util.Arrays", "deepEquals", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.Arrays", "deepToString", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.util.Arrays", "deepHashCode", cbm_type_builtin(arena, "int"));
|
|
|
|
REG_METHOD("java.util.Collections", "sort", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.util.Collections", "reverse", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.util.Collections", "shuffle", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.util.Collections", "min", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.Collections", "max", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.Collections", "emptyList", cbm_type_named(arena, "java.util.List"));
|
|
REG_METHOD("java.util.Collections", "emptySet", cbm_type_named(arena, "java.util.Set"));
|
|
REG_METHOD("java.util.Collections", "emptyMap", cbm_type_named(arena, "java.util.Map"));
|
|
REG_METHOD("java.util.Collections", "singletonList",
|
|
cbm_type_named(arena, "java.util.List"));
|
|
REG_METHOD("java.util.Collections", "singleton",
|
|
cbm_type_named(arena, "java.util.Set"));
|
|
REG_METHOD("java.util.Collections", "unmodifiableList",
|
|
cbm_type_named(arena, "java.util.List"));
|
|
REG_METHOD("java.util.Collections", "unmodifiableSet",
|
|
cbm_type_named(arena, "java.util.Set"));
|
|
REG_METHOD("java.util.Collections", "unmodifiableMap",
|
|
cbm_type_named(arena, "java.util.Map"));
|
|
REG_METHOD("java.util.Collections", "frequency", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.util.Collections", "binarySearch", cbm_type_builtin(arena, "int"));
|
|
|
|
REG_METHOD("java.util.Objects", "equals", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.Objects", "hashCode", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.util.Objects", "hash", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.util.Objects", "toString", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.util.Objects", "isNull", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.Objects", "nonNull", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.Objects", "requireNonNull", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.Objects", "requireNonNullElse",
|
|
cbm_type_named(arena, "java.lang.Object"));
|
|
|
|
/* ── UUID, Random, Scanner ────────────────────────────────── */
|
|
REG_METHOD("java.util.UUID", "randomUUID", cbm_type_named(arena, "java.util.UUID"));
|
|
REG_METHOD("java.util.UUID", "fromString", cbm_type_named(arena, "java.util.UUID"));
|
|
REG_METHOD("java.util.UUID", "toString", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.util.UUID", "getMostSignificantBits", cbm_type_builtin(arena, "long"));
|
|
REG_METHOD("java.util.UUID", "getLeastSignificantBits", cbm_type_builtin(arena, "long"));
|
|
REG_CTOR("java.util.UUID", "UUID");
|
|
|
|
REG_METHOD("java.util.Random", "nextInt", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.util.Random", "nextLong", cbm_type_builtin(arena, "long"));
|
|
REG_METHOD("java.util.Random", "nextDouble", cbm_type_builtin(arena, "double"));
|
|
REG_METHOD("java.util.Random", "nextFloat", cbm_type_builtin(arena, "float"));
|
|
REG_METHOD("java.util.Random", "nextBoolean", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.Random", "nextGaussian", cbm_type_builtin(arena, "double"));
|
|
REG_METHOD("java.util.Random", "setSeed", cbm_type_builtin(arena, "void"));
|
|
REG_CTOR("java.util.Random", "Random");
|
|
|
|
REG_METHOD("java.util.Scanner", "next", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.util.Scanner", "nextLine", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.util.Scanner", "nextInt", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.util.Scanner", "nextLong", cbm_type_builtin(arena, "long"));
|
|
REG_METHOD("java.util.Scanner", "nextDouble", cbm_type_builtin(arena, "double"));
|
|
REG_METHOD("java.util.Scanner", "hasNext", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.Scanner", "hasNextLine", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.Scanner", "hasNextInt", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.Scanner", "close", cbm_type_builtin(arena, "void"));
|
|
REG_CTOR("java.util.Scanner", "Scanner");
|
|
|
|
/* ── Locale / Date / Calendar / TimeZone ──────────────────── */
|
|
REG_METHOD("java.util.Locale", "getLanguage", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.util.Locale", "getCountry", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.util.Locale", "toString", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.util.Locale", "getDefault", cbm_type_named(arena, "java.util.Locale"));
|
|
REG_CTOR("java.util.Locale", "Locale");
|
|
|
|
REG_METHOD("java.util.Date", "getTime", cbm_type_builtin(arena, "long"));
|
|
REG_METHOD("java.util.Date", "setTime", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.util.Date", "before", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.Date", "after", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.Date", "compareTo", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.util.Date", "toString", cbm_type_named(arena, "java.lang.String"));
|
|
REG_CTOR("java.util.Date", "Date");
|
|
|
|
REG_METHOD("java.util.Calendar", "getInstance", cbm_type_named(arena, "java.util.Calendar"));
|
|
REG_METHOD("java.util.Calendar", "getTime", cbm_type_named(arena, "java.util.Date"));
|
|
REG_METHOD("java.util.Calendar", "set", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.util.Calendar", "get", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.util.Calendar", "add", cbm_type_builtin(arena, "void"));
|
|
|
|
REG_METHOD("java.util.TimeZone", "getDefault", cbm_type_named(arena, "java.util.TimeZone"));
|
|
REG_METHOD("java.util.TimeZone", "getID", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.util.TimeZone", "getTimeZone", cbm_type_named(arena, "java.util.TimeZone"));
|
|
|
|
/* ── regex ────────────────────────────────────────────────── */
|
|
REG_METHOD("java.util.regex.Pattern", "compile",
|
|
cbm_type_named(arena, "java.util.regex.Pattern"));
|
|
REG_METHOD("java.util.regex.Pattern", "matcher",
|
|
cbm_type_named(arena, "java.util.regex.Matcher"));
|
|
REG_METHOD("java.util.regex.Pattern", "matches", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.regex.Pattern", "split",
|
|
cbm_type_slice(arena, cbm_type_named(arena, "java.lang.String")));
|
|
REG_METHOD("java.util.regex.Pattern", "pattern", cbm_type_named(arena, "java.lang.String"));
|
|
|
|
REG_METHOD("java.util.regex.Matcher", "matches", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.regex.Matcher", "find", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.regex.Matcher", "group", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.util.regex.Matcher", "groupCount", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.util.regex.Matcher", "start", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.util.regex.Matcher", "end", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.util.regex.Matcher", "replaceAll", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.util.regex.Matcher", "replaceFirst",
|
|
cbm_type_named(arena, "java.lang.String"));
|
|
|
|
/* ── java.io ──────────────────────────────────────────────── */
|
|
REG_TYPE("java.io.InputStream", "InputStream", false, parents_inputstream);
|
|
REG_TYPE("java.io.OutputStream", "OutputStream", false, parents_outputstream);
|
|
REG_TYPE("java.io.Reader", "Reader", false, parents_reader);
|
|
REG_TYPE("java.io.Writer", "Writer", false, parents_writer);
|
|
REG_TYPE("java.io.BufferedReader", "BufferedReader", false, parents_buffered_reader);
|
|
REG_TYPE("java.io.BufferedWriter", "BufferedWriter", false, parents_buffered_writer);
|
|
REG_TYPE("java.io.PrintStream", "PrintStream", false, parents_print_stream);
|
|
REG_TYPE("java.io.PrintWriter", "PrintWriter", false, parents_print_writer);
|
|
REG_TYPE("java.io.FileInputStream", "FileInputStream", false, parents_file_input_stream);
|
|
REG_TYPE("java.io.FileOutputStream", "FileOutputStream", false, parents_file_output_stream);
|
|
REG_TYPE("java.io.FileReader", "FileReader", false, parents_file_reader);
|
|
REG_TYPE("java.io.FileWriter", "FileWriter", false, parents_file_writer);
|
|
REG_TYPE("java.io.File", "File", false, parents_object);
|
|
REG_TYPE("java.io.IOException", "IOException", false, parents_io_exception);
|
|
REG_TYPE("java.io.FileNotFoundException", "FileNotFoundException", false,
|
|
parents_file_not_found_exc);
|
|
REG_TYPE("java.io.UncheckedIOException", "UncheckedIOException", false,
|
|
parents_runtime_exc_chain);
|
|
REG_TYPE("java.io.Serializable", "Serializable", true, no_parents);
|
|
REG_TYPE("java.io.Closeable", "Closeable", true,
|
|
parents_closeable);
|
|
REG_TYPE("java.io.Flushable", "Flushable", true, no_parents);
|
|
|
|
REG_METHOD("java.io.PrintStream", "println", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.io.PrintStream", "print", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.io.PrintStream", "printf", cbm_type_named(arena, "java.io.PrintStream"));
|
|
REG_METHOD("java.io.PrintStream", "format", cbm_type_named(arena, "java.io.PrintStream"));
|
|
REG_METHOD("java.io.PrintStream", "write", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.io.PrintStream", "flush", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.io.PrintStream", "close", cbm_type_builtin(arena, "void"));
|
|
|
|
REG_METHOD("java.io.PrintWriter", "println", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.io.PrintWriter", "print", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.io.PrintWriter", "printf", cbm_type_named(arena, "java.io.PrintWriter"));
|
|
REG_METHOD("java.io.PrintWriter", "flush", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.io.PrintWriter", "close", cbm_type_builtin(arena, "void"));
|
|
REG_CTOR("java.io.PrintWriter", "PrintWriter");
|
|
|
|
REG_METHOD("java.io.InputStream", "read", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.io.InputStream", "close", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.io.InputStream", "available", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.io.InputStream", "skip", cbm_type_builtin(arena, "long"));
|
|
REG_METHOD("java.io.InputStream", "readAllBytes",
|
|
cbm_type_slice(arena, cbm_type_builtin(arena, "byte")));
|
|
|
|
REG_METHOD("java.io.OutputStream", "write", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.io.OutputStream", "flush", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.io.OutputStream", "close", cbm_type_builtin(arena, "void"));
|
|
|
|
REG_METHOD("java.io.Reader", "read", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.io.Reader", "close", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.io.Reader", "ready", cbm_type_builtin(arena, "boolean"));
|
|
|
|
REG_METHOD("java.io.Writer", "write", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.io.Writer", "flush", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.io.Writer", "close", cbm_type_builtin(arena, "void"));
|
|
|
|
REG_METHOD("java.io.BufferedReader", "readLine", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.io.BufferedReader", "lines",
|
|
cbm_type_named(arena, "java.util.stream.Stream"));
|
|
REG_METHOD("java.io.BufferedReader", "close", cbm_type_builtin(arena, "void"));
|
|
REG_CTOR("java.io.BufferedReader", "BufferedReader");
|
|
|
|
REG_METHOD("java.io.BufferedWriter", "write", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.io.BufferedWriter", "newLine", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.io.BufferedWriter", "flush", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.io.BufferedWriter", "close", cbm_type_builtin(arena, "void"));
|
|
REG_CTOR("java.io.BufferedWriter", "BufferedWriter");
|
|
|
|
REG_METHOD("java.io.File", "exists", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.io.File", "isFile", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.io.File", "isDirectory", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.io.File", "canRead", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.io.File", "canWrite", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.io.File", "getName", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.io.File", "getPath", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.io.File", "getAbsolutePath", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.io.File", "getCanonicalPath", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.io.File", "getParent", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.io.File", "getParentFile", cbm_type_named(arena, "java.io.File"));
|
|
REG_METHOD("java.io.File", "length", cbm_type_builtin(arena, "long"));
|
|
REG_METHOD("java.io.File", "lastModified", cbm_type_builtin(arena, "long"));
|
|
REG_METHOD("java.io.File", "mkdir", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.io.File", "mkdirs", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.io.File", "delete", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.io.File", "renameTo", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.io.File", "list",
|
|
cbm_type_slice(arena, cbm_type_named(arena, "java.lang.String")));
|
|
REG_METHOD("java.io.File", "listFiles",
|
|
cbm_type_slice(arena, cbm_type_named(arena, "java.io.File")));
|
|
REG_METHOD("java.io.File", "toPath", cbm_type_named(arena, "java.nio.file.Path"));
|
|
REG_METHOD("java.io.File", "toURI", cbm_type_named(arena, "java.net.URI"));
|
|
REG_CTOR("java.io.File", "File");
|
|
|
|
/* ── java.nio.file ───────────────────────────────────────── */
|
|
REG_TYPE("java.nio.file.Path", "Path", true, no_parents);
|
|
REG_TYPE("java.nio.file.Paths", "Paths", false, parents_object);
|
|
REG_TYPE("java.nio.file.Files", "Files", false, parents_object);
|
|
|
|
REG_METHOD("java.nio.file.Path", "getFileName", cbm_type_named(arena, "java.nio.file.Path"));
|
|
REG_METHOD("java.nio.file.Path", "getParent", cbm_type_named(arena, "java.nio.file.Path"));
|
|
REG_METHOD("java.nio.file.Path", "getRoot", cbm_type_named(arena, "java.nio.file.Path"));
|
|
REG_METHOD("java.nio.file.Path", "resolve", cbm_type_named(arena, "java.nio.file.Path"));
|
|
REG_METHOD("java.nio.file.Path", "resolveSibling",
|
|
cbm_type_named(arena, "java.nio.file.Path"));
|
|
REG_METHOD("java.nio.file.Path", "relativize", cbm_type_named(arena, "java.nio.file.Path"));
|
|
REG_METHOD("java.nio.file.Path", "normalize", cbm_type_named(arena, "java.nio.file.Path"));
|
|
REG_METHOD("java.nio.file.Path", "toAbsolutePath",
|
|
cbm_type_named(arena, "java.nio.file.Path"));
|
|
REG_METHOD("java.nio.file.Path", "toString", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.nio.file.Path", "toFile", cbm_type_named(arena, "java.io.File"));
|
|
REG_METHOD("java.nio.file.Path", "of", cbm_type_named(arena, "java.nio.file.Path"));
|
|
|
|
REG_METHOD("java.nio.file.Paths", "get", cbm_type_named(arena, "java.nio.file.Path"));
|
|
|
|
REG_METHOD("java.nio.file.Files", "exists", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.nio.file.Files", "isDirectory", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.nio.file.Files", "isRegularFile", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.nio.file.Files", "readString", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.nio.file.Files", "writeString", cbm_type_named(arena, "java.nio.file.Path"));
|
|
REG_METHOD("java.nio.file.Files", "readAllLines", cbm_type_named(arena, "java.util.List"));
|
|
REG_METHOD("java.nio.file.Files", "readAllBytes",
|
|
cbm_type_slice(arena, cbm_type_builtin(arena, "byte")));
|
|
REG_METHOD("java.nio.file.Files", "lines",
|
|
cbm_type_named(arena, "java.util.stream.Stream"));
|
|
REG_METHOD("java.nio.file.Files", "list",
|
|
cbm_type_named(arena, "java.util.stream.Stream"));
|
|
REG_METHOD("java.nio.file.Files", "walk",
|
|
cbm_type_named(arena, "java.util.stream.Stream"));
|
|
REG_METHOD("java.nio.file.Files", "createDirectory",
|
|
cbm_type_named(arena, "java.nio.file.Path"));
|
|
REG_METHOD("java.nio.file.Files", "createDirectories",
|
|
cbm_type_named(arena, "java.nio.file.Path"));
|
|
REG_METHOD("java.nio.file.Files", "createFile",
|
|
cbm_type_named(arena, "java.nio.file.Path"));
|
|
REG_METHOD("java.nio.file.Files", "delete", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.nio.file.Files", "deleteIfExists", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.nio.file.Files", "copy", cbm_type_named(arena, "java.nio.file.Path"));
|
|
REG_METHOD("java.nio.file.Files", "move", cbm_type_named(arena, "java.nio.file.Path"));
|
|
REG_METHOD("java.nio.file.Files", "size", cbm_type_builtin(arena, "long"));
|
|
|
|
/* ── java.util.function (the 21 functional interfaces) ──── */
|
|
REG_TYPE("java.util.function.Function", "Function", true, no_parents);
|
|
REG_TYPE("java.util.function.BiFunction", "BiFunction", true, no_parents);
|
|
REG_TYPE("java.util.function.Predicate", "Predicate", true, no_parents);
|
|
REG_TYPE("java.util.function.BiPredicate", "BiPredicate", true, no_parents);
|
|
REG_TYPE("java.util.function.Consumer", "Consumer", true, no_parents);
|
|
REG_TYPE("java.util.function.BiConsumer", "BiConsumer", true, no_parents);
|
|
REG_TYPE("java.util.function.Supplier", "Supplier", true, no_parents);
|
|
REG_TYPE("java.util.function.UnaryOperator", "UnaryOperator", true,
|
|
parents_unary_operator);
|
|
REG_TYPE("java.util.function.BinaryOperator", "BinaryOperator", true,
|
|
parents_binary_operator);
|
|
REG_TYPE("java.util.function.IntFunction", "IntFunction", true, no_parents);
|
|
REG_TYPE("java.util.function.LongFunction", "LongFunction", true, no_parents);
|
|
REG_TYPE("java.util.function.DoubleFunction", "DoubleFunction", true, no_parents);
|
|
REG_TYPE("java.util.function.IntPredicate", "IntPredicate", true, no_parents);
|
|
REG_TYPE("java.util.function.LongPredicate", "LongPredicate", true, no_parents);
|
|
REG_TYPE("java.util.function.DoublePredicate", "DoublePredicate", true, no_parents);
|
|
REG_TYPE("java.util.function.IntConsumer", "IntConsumer", true, no_parents);
|
|
REG_TYPE("java.util.function.LongConsumer", "LongConsumer", true, no_parents);
|
|
REG_TYPE("java.util.function.DoubleConsumer", "DoubleConsumer", true, no_parents);
|
|
REG_TYPE("java.util.function.IntSupplier", "IntSupplier", true, no_parents);
|
|
REG_TYPE("java.util.function.LongSupplier", "LongSupplier", true, no_parents);
|
|
REG_TYPE("java.util.function.DoubleSupplier", "DoubleSupplier", true, no_parents);
|
|
REG_TYPE("java.util.function.BooleanSupplier", "BooleanSupplier", true, no_parents);
|
|
REG_TYPE("java.util.function.ToIntFunction", "ToIntFunction", true, no_parents);
|
|
REG_TYPE("java.util.function.ToLongFunction", "ToLongFunction", true, no_parents);
|
|
REG_TYPE("java.util.function.ToDoubleFunction", "ToDoubleFunction", true, no_parents);
|
|
|
|
REG_METHOD("java.util.function.Function", "apply", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.function.Function", "compose",
|
|
cbm_type_named(arena, "java.util.function.Function"));
|
|
REG_METHOD("java.util.function.Function", "andThen",
|
|
cbm_type_named(arena, "java.util.function.Function"));
|
|
REG_METHOD("java.util.function.Function", "identity",
|
|
cbm_type_named(arena, "java.util.function.Function"));
|
|
|
|
REG_METHOD("java.util.function.BiFunction", "apply",
|
|
cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.function.BiFunction", "andThen",
|
|
cbm_type_named(arena, "java.util.function.BiFunction"));
|
|
|
|
REG_METHOD("java.util.function.Predicate", "test", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.function.Predicate", "and",
|
|
cbm_type_named(arena, "java.util.function.Predicate"));
|
|
REG_METHOD("java.util.function.Predicate", "or",
|
|
cbm_type_named(arena, "java.util.function.Predicate"));
|
|
REG_METHOD("java.util.function.Predicate", "negate",
|
|
cbm_type_named(arena, "java.util.function.Predicate"));
|
|
REG_METHOD("java.util.function.Predicate", "isEqual",
|
|
cbm_type_named(arena, "java.util.function.Predicate"));
|
|
|
|
REG_METHOD("java.util.function.Consumer", "accept", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.util.function.Consumer", "andThen",
|
|
cbm_type_named(arena, "java.util.function.Consumer"));
|
|
|
|
REG_METHOD("java.util.function.Supplier", "get", cbm_type_named(arena, "java.lang.Object"));
|
|
|
|
REG_METHOD("java.util.function.UnaryOperator", "identity",
|
|
cbm_type_named(arena, "java.util.function.UnaryOperator"));
|
|
REG_METHOD("java.util.function.UnaryOperator", "apply",
|
|
cbm_type_named(arena, "java.lang.Object"));
|
|
|
|
/* ── java.util.stream ────────────────────────────────────── */
|
|
REG_TYPE("java.util.stream.Stream", "Stream", true, no_parents);
|
|
REG_TYPE("java.util.stream.IntStream", "IntStream", true, no_parents);
|
|
REG_TYPE("java.util.stream.LongStream", "LongStream", true, no_parents);
|
|
REG_TYPE("java.util.stream.DoubleStream", "DoubleStream", true, no_parents);
|
|
REG_TYPE("java.util.stream.Collectors", "Collectors", false, parents_object);
|
|
REG_TYPE("java.util.stream.Collector", "Collector", true, no_parents);
|
|
|
|
REG_METHOD("java.util.stream.Stream", "filter",
|
|
cbm_type_named(arena, "java.util.stream.Stream"));
|
|
REG_METHOD("java.util.stream.Stream", "map",
|
|
cbm_type_named(arena, "java.util.stream.Stream"));
|
|
REG_METHOD("java.util.stream.Stream", "flatMap",
|
|
cbm_type_named(arena, "java.util.stream.Stream"));
|
|
REG_METHOD("java.util.stream.Stream", "mapToInt",
|
|
cbm_type_named(arena, "java.util.stream.IntStream"));
|
|
REG_METHOD("java.util.stream.Stream", "mapToLong",
|
|
cbm_type_named(arena, "java.util.stream.LongStream"));
|
|
REG_METHOD("java.util.stream.Stream", "mapToDouble",
|
|
cbm_type_named(arena, "java.util.stream.DoubleStream"));
|
|
REG_METHOD("java.util.stream.Stream", "sorted",
|
|
cbm_type_named(arena, "java.util.stream.Stream"));
|
|
REG_METHOD("java.util.stream.Stream", "distinct",
|
|
cbm_type_named(arena, "java.util.stream.Stream"));
|
|
REG_METHOD("java.util.stream.Stream", "limit",
|
|
cbm_type_named(arena, "java.util.stream.Stream"));
|
|
REG_METHOD("java.util.stream.Stream", "skip",
|
|
cbm_type_named(arena, "java.util.stream.Stream"));
|
|
REG_METHOD("java.util.stream.Stream", "peek",
|
|
cbm_type_named(arena, "java.util.stream.Stream"));
|
|
REG_METHOD("java.util.stream.Stream", "forEach", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.util.stream.Stream", "forEachOrdered", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.util.stream.Stream", "toArray",
|
|
cbm_type_slice(arena, cbm_type_named(arena, "java.lang.Object")));
|
|
REG_METHOD("java.util.stream.Stream", "toList", cbm_type_named(arena, "java.util.List"));
|
|
REG_METHOD("java.util.stream.Stream", "reduce", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.stream.Stream", "collect", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.stream.Stream", "count", cbm_type_builtin(arena, "long"));
|
|
REG_METHOD("java.util.stream.Stream", "anyMatch", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.stream.Stream", "allMatch", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.stream.Stream", "noneMatch", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.stream.Stream", "findFirst",
|
|
cbm_type_named(arena, "java.util.Optional"));
|
|
REG_METHOD("java.util.stream.Stream", "findAny",
|
|
cbm_type_named(arena, "java.util.Optional"));
|
|
REG_METHOD("java.util.stream.Stream", "min", cbm_type_named(arena, "java.util.Optional"));
|
|
REG_METHOD("java.util.stream.Stream", "max", cbm_type_named(arena, "java.util.Optional"));
|
|
REG_METHOD("java.util.stream.Stream", "of",
|
|
cbm_type_named(arena, "java.util.stream.Stream"));
|
|
REG_METHOD("java.util.stream.Stream", "empty",
|
|
cbm_type_named(arena, "java.util.stream.Stream"));
|
|
REG_METHOD("java.util.stream.Stream", "concat",
|
|
cbm_type_named(arena, "java.util.stream.Stream"));
|
|
REG_METHOD("java.util.stream.Stream", "iterate",
|
|
cbm_type_named(arena, "java.util.stream.Stream"));
|
|
REG_METHOD("java.util.stream.Stream", "generate",
|
|
cbm_type_named(arena, "java.util.stream.Stream"));
|
|
|
|
REG_METHOD("java.util.stream.IntStream", "sum", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.util.stream.IntStream", "average",
|
|
cbm_type_named(arena, "java.util.OptionalDouble"));
|
|
REG_METHOD("java.util.stream.IntStream", "max",
|
|
cbm_type_named(arena, "java.util.OptionalInt"));
|
|
REG_METHOD("java.util.stream.IntStream", "min",
|
|
cbm_type_named(arena, "java.util.OptionalInt"));
|
|
REG_METHOD("java.util.stream.IntStream", "count", cbm_type_builtin(arena, "long"));
|
|
REG_METHOD("java.util.stream.IntStream", "boxed",
|
|
cbm_type_named(arena, "java.util.stream.Stream"));
|
|
REG_METHOD("java.util.stream.IntStream", "filter",
|
|
cbm_type_named(arena, "java.util.stream.IntStream"));
|
|
REG_METHOD("java.util.stream.IntStream", "map",
|
|
cbm_type_named(arena, "java.util.stream.IntStream"));
|
|
REG_METHOD("java.util.stream.IntStream", "range",
|
|
cbm_type_named(arena, "java.util.stream.IntStream"));
|
|
REG_METHOD("java.util.stream.IntStream", "rangeClosed",
|
|
cbm_type_named(arena, "java.util.stream.IntStream"));
|
|
REG_METHOD("java.util.stream.IntStream", "of",
|
|
cbm_type_named(arena, "java.util.stream.IntStream"));
|
|
|
|
REG_METHOD("java.util.stream.Collectors", "toList",
|
|
cbm_type_named(arena, "java.util.stream.Collector"));
|
|
REG_METHOD("java.util.stream.Collectors", "toSet",
|
|
cbm_type_named(arena, "java.util.stream.Collector"));
|
|
REG_METHOD("java.util.stream.Collectors", "toMap",
|
|
cbm_type_named(arena, "java.util.stream.Collector"));
|
|
REG_METHOD("java.util.stream.Collectors", "joining",
|
|
cbm_type_named(arena, "java.util.stream.Collector"));
|
|
REG_METHOD("java.util.stream.Collectors", "groupingBy",
|
|
cbm_type_named(arena, "java.util.stream.Collector"));
|
|
REG_METHOD("java.util.stream.Collectors", "partitioningBy",
|
|
cbm_type_named(arena, "java.util.stream.Collector"));
|
|
REG_METHOD("java.util.stream.Collectors", "counting",
|
|
cbm_type_named(arena, "java.util.stream.Collector"));
|
|
REG_METHOD("java.util.stream.Collectors", "summingInt",
|
|
cbm_type_named(arena, "java.util.stream.Collector"));
|
|
REG_METHOD("java.util.stream.Collectors", "averagingDouble",
|
|
cbm_type_named(arena, "java.util.stream.Collector"));
|
|
REG_METHOD("java.util.stream.Collectors", "mapping",
|
|
cbm_type_named(arena, "java.util.stream.Collector"));
|
|
REG_METHOD("java.util.stream.Collectors", "reducing",
|
|
cbm_type_named(arena, "java.util.stream.Collector"));
|
|
|
|
/* ── java.util.concurrent ────────────────────────────────── */
|
|
REG_TYPE("java.util.concurrent.ExecutorService", "ExecutorService", true, no_parents);
|
|
REG_TYPE("java.util.concurrent.Executors", "Executors", false, parents_object);
|
|
REG_TYPE("java.util.concurrent.Future", "Future", true, no_parents);
|
|
REG_TYPE("java.util.concurrent.CompletableFuture", "CompletableFuture", false,
|
|
parents_completable_future);
|
|
REG_TYPE("java.util.concurrent.ConcurrentHashMap", "ConcurrentHashMap", false,
|
|
parents_concurrent_hashmap);
|
|
REG_TYPE("java.util.concurrent.ConcurrentMap", "ConcurrentMap", true, parents_map);
|
|
REG_TYPE("java.util.concurrent.TimeUnit", "TimeUnit", false, parents_object);
|
|
REG_TYPE("java.util.concurrent.atomic.AtomicInteger", "AtomicInteger", false, parents_object);
|
|
REG_TYPE("java.util.concurrent.atomic.AtomicLong", "AtomicLong", false, parents_object);
|
|
REG_TYPE("java.util.concurrent.atomic.AtomicBoolean", "AtomicBoolean", false, parents_object);
|
|
REG_TYPE("java.util.concurrent.atomic.AtomicReference", "AtomicReference", false,
|
|
parents_object);
|
|
REG_TYPE("java.util.concurrent.locks.Lock", "Lock", true, no_parents);
|
|
REG_TYPE("java.util.concurrent.locks.ReentrantLock", "ReentrantLock", false,
|
|
parents_reentrant_lock);
|
|
REG_TYPE("java.util.concurrent.locks.ReadWriteLock", "ReadWriteLock", true, no_parents);
|
|
|
|
REG_METHOD("java.util.concurrent.ExecutorService", "submit",
|
|
cbm_type_named(arena, "java.util.concurrent.Future"));
|
|
REG_METHOD("java.util.concurrent.ExecutorService", "execute", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.util.concurrent.ExecutorService", "shutdown", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.util.concurrent.ExecutorService", "shutdownNow",
|
|
cbm_type_named(arena, "java.util.List"));
|
|
REG_METHOD("java.util.concurrent.ExecutorService", "awaitTermination",
|
|
cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.concurrent.ExecutorService", "isShutdown",
|
|
cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.concurrent.ExecutorService", "isTerminated",
|
|
cbm_type_builtin(arena, "boolean"));
|
|
|
|
REG_METHOD("java.util.concurrent.Executors", "newFixedThreadPool",
|
|
cbm_type_named(arena, "java.util.concurrent.ExecutorService"));
|
|
REG_METHOD("java.util.concurrent.Executors", "newSingleThreadExecutor",
|
|
cbm_type_named(arena, "java.util.concurrent.ExecutorService"));
|
|
REG_METHOD("java.util.concurrent.Executors", "newCachedThreadPool",
|
|
cbm_type_named(arena, "java.util.concurrent.ExecutorService"));
|
|
REG_METHOD("java.util.concurrent.Executors", "newScheduledThreadPool",
|
|
cbm_type_named(arena, "java.util.concurrent.ExecutorService"));
|
|
|
|
REG_METHOD("java.util.concurrent.Future", "get", cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.concurrent.Future", "isDone", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.concurrent.Future", "cancel", cbm_type_builtin(arena, "boolean"));
|
|
|
|
REG_METHOD("java.util.concurrent.CompletableFuture", "thenApply",
|
|
cbm_type_named(arena, "java.util.concurrent.CompletableFuture"));
|
|
REG_METHOD("java.util.concurrent.CompletableFuture", "thenAccept",
|
|
cbm_type_named(arena, "java.util.concurrent.CompletableFuture"));
|
|
REG_METHOD("java.util.concurrent.CompletableFuture", "thenCompose",
|
|
cbm_type_named(arena, "java.util.concurrent.CompletableFuture"));
|
|
REG_METHOD("java.util.concurrent.CompletableFuture", "thenCombine",
|
|
cbm_type_named(arena, "java.util.concurrent.CompletableFuture"));
|
|
REG_METHOD("java.util.concurrent.CompletableFuture", "exceptionally",
|
|
cbm_type_named(arena, "java.util.concurrent.CompletableFuture"));
|
|
REG_METHOD("java.util.concurrent.CompletableFuture", "join",
|
|
cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.concurrent.CompletableFuture", "supplyAsync",
|
|
cbm_type_named(arena, "java.util.concurrent.CompletableFuture"));
|
|
REG_METHOD("java.util.concurrent.CompletableFuture", "runAsync",
|
|
cbm_type_named(arena, "java.util.concurrent.CompletableFuture"));
|
|
REG_METHOD("java.util.concurrent.CompletableFuture", "completedFuture",
|
|
cbm_type_named(arena, "java.util.concurrent.CompletableFuture"));
|
|
REG_METHOD("java.util.concurrent.CompletableFuture", "allOf",
|
|
cbm_type_named(arena, "java.util.concurrent.CompletableFuture"));
|
|
REG_METHOD("java.util.concurrent.CompletableFuture", "anyOf",
|
|
cbm_type_named(arena, "java.util.concurrent.CompletableFuture"));
|
|
|
|
REG_METHOD("java.util.concurrent.atomic.AtomicInteger", "get", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.util.concurrent.atomic.AtomicInteger", "set", cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.util.concurrent.atomic.AtomicInteger", "incrementAndGet",
|
|
cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.util.concurrent.atomic.AtomicInteger", "decrementAndGet",
|
|
cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.util.concurrent.atomic.AtomicInteger", "getAndIncrement",
|
|
cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.util.concurrent.atomic.AtomicInteger", "compareAndSet",
|
|
cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.util.concurrent.atomic.AtomicInteger", "addAndGet",
|
|
cbm_type_builtin(arena, "int"));
|
|
REG_CTOR("java.util.concurrent.atomic.AtomicInteger", "AtomicInteger");
|
|
|
|
REG_METHOD("java.util.concurrent.atomic.AtomicLong", "get",
|
|
cbm_type_builtin(arena, "long"));
|
|
REG_METHOD("java.util.concurrent.atomic.AtomicLong", "incrementAndGet",
|
|
cbm_type_builtin(arena, "long"));
|
|
REG_CTOR("java.util.concurrent.atomic.AtomicLong", "AtomicLong");
|
|
|
|
REG_METHOD("java.util.concurrent.atomic.AtomicReference", "get",
|
|
cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.concurrent.atomic.AtomicReference", "set",
|
|
cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.util.concurrent.atomic.AtomicReference", "compareAndSet",
|
|
cbm_type_builtin(arena, "boolean"));
|
|
REG_CTOR("java.util.concurrent.atomic.AtomicReference", "AtomicReference");
|
|
|
|
REG_METHOD("java.util.concurrent.locks.ReentrantLock", "lock",
|
|
cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.util.concurrent.locks.ReentrantLock", "unlock",
|
|
cbm_type_builtin(arena, "void"));
|
|
REG_METHOD("java.util.concurrent.locks.ReentrantLock", "tryLock",
|
|
cbm_type_builtin(arena, "boolean"));
|
|
REG_CTOR("java.util.concurrent.locks.ReentrantLock", "ReentrantLock");
|
|
|
|
REG_METHOD("java.util.concurrent.ConcurrentHashMap", "put",
|
|
cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.concurrent.ConcurrentHashMap", "get",
|
|
cbm_type_named(arena, "java.lang.Object"));
|
|
REG_METHOD("java.util.concurrent.ConcurrentHashMap", "putIfAbsent",
|
|
cbm_type_named(arena, "java.lang.Object"));
|
|
REG_CTOR("java.util.concurrent.ConcurrentHashMap", "ConcurrentHashMap");
|
|
|
|
/* ── java.time ───────────────────────────────────────────── */
|
|
REG_TYPE("java.time.LocalDate", "LocalDate", false, parents_object);
|
|
REG_TYPE("java.time.LocalTime", "LocalTime", false, parents_object);
|
|
REG_TYPE("java.time.LocalDateTime", "LocalDateTime", false, parents_object);
|
|
REG_TYPE("java.time.ZonedDateTime", "ZonedDateTime", false, parents_object);
|
|
REG_TYPE("java.time.OffsetDateTime", "OffsetDateTime", false, parents_object);
|
|
REG_TYPE("java.time.Instant", "Instant", false, parents_object);
|
|
REG_TYPE("java.time.Duration", "Duration", false, parents_object);
|
|
REG_TYPE("java.time.Period", "Period", false, parents_object);
|
|
REG_TYPE("java.time.ZoneId", "ZoneId", false, parents_object);
|
|
REG_TYPE("java.time.format.DateTimeFormatter", "DateTimeFormatter", false, parents_object);
|
|
|
|
REG_METHOD("java.time.LocalDate", "now", cbm_type_named(arena, "java.time.LocalDate"));
|
|
REG_METHOD("java.time.LocalDate", "of", cbm_type_named(arena, "java.time.LocalDate"));
|
|
REG_METHOD("java.time.LocalDate", "parse", cbm_type_named(arena, "java.time.LocalDate"));
|
|
REG_METHOD("java.time.LocalDate", "plusDays", cbm_type_named(arena, "java.time.LocalDate"));
|
|
REG_METHOD("java.time.LocalDate", "minusDays", cbm_type_named(arena, "java.time.LocalDate"));
|
|
REG_METHOD("java.time.LocalDate", "getYear", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.time.LocalDate", "getMonth", cbm_type_named(arena, "java.time.Month"));
|
|
REG_METHOD("java.time.LocalDate", "getDayOfMonth", cbm_type_builtin(arena, "int"));
|
|
REG_METHOD("java.time.LocalDate", "getDayOfWeek",
|
|
cbm_type_named(arena, "java.time.DayOfWeek"));
|
|
REG_METHOD("java.time.LocalDate", "isAfter", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.time.LocalDate", "isBefore", cbm_type_builtin(arena, "boolean"));
|
|
REG_METHOD("java.time.LocalDate", "format", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.time.LocalDate", "toString", cbm_type_named(arena, "java.lang.String"));
|
|
|
|
REG_METHOD("java.time.LocalDateTime", "now",
|
|
cbm_type_named(arena, "java.time.LocalDateTime"));
|
|
REG_METHOD("java.time.LocalDateTime", "of",
|
|
cbm_type_named(arena, "java.time.LocalDateTime"));
|
|
REG_METHOD("java.time.LocalDateTime", "parse",
|
|
cbm_type_named(arena, "java.time.LocalDateTime"));
|
|
REG_METHOD("java.time.LocalDateTime", "plusHours",
|
|
cbm_type_named(arena, "java.time.LocalDateTime"));
|
|
REG_METHOD("java.time.LocalDateTime", "minusHours",
|
|
cbm_type_named(arena, "java.time.LocalDateTime"));
|
|
REG_METHOD("java.time.LocalDateTime", "format", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.time.LocalDateTime", "toString", cbm_type_named(arena, "java.lang.String"));
|
|
|
|
REG_METHOD("java.time.Instant", "now", cbm_type_named(arena, "java.time.Instant"));
|
|
REG_METHOD("java.time.Instant", "ofEpochMilli", cbm_type_named(arena, "java.time.Instant"));
|
|
REG_METHOD("java.time.Instant", "ofEpochSecond", cbm_type_named(arena, "java.time.Instant"));
|
|
REG_METHOD("java.time.Instant", "toEpochMilli", cbm_type_builtin(arena, "long"));
|
|
REG_METHOD("java.time.Instant", "getEpochSecond", cbm_type_builtin(arena, "long"));
|
|
REG_METHOD("java.time.Instant", "plus", cbm_type_named(arena, "java.time.Instant"));
|
|
REG_METHOD("java.time.Instant", "minus", cbm_type_named(arena, "java.time.Instant"));
|
|
|
|
REG_METHOD("java.time.Duration", "ofSeconds", cbm_type_named(arena, "java.time.Duration"));
|
|
REG_METHOD("java.time.Duration", "ofMillis", cbm_type_named(arena, "java.time.Duration"));
|
|
REG_METHOD("java.time.Duration", "ofMinutes", cbm_type_named(arena, "java.time.Duration"));
|
|
REG_METHOD("java.time.Duration", "ofHours", cbm_type_named(arena, "java.time.Duration"));
|
|
REG_METHOD("java.time.Duration", "ofDays", cbm_type_named(arena, "java.time.Duration"));
|
|
REG_METHOD("java.time.Duration", "between", cbm_type_named(arena, "java.time.Duration"));
|
|
REG_METHOD("java.time.Duration", "toMillis", cbm_type_builtin(arena, "long"));
|
|
REG_METHOD("java.time.Duration", "toSeconds", cbm_type_builtin(arena, "long"));
|
|
REG_METHOD("java.time.Duration", "toMinutes", cbm_type_builtin(arena, "long"));
|
|
|
|
REG_METHOD("java.time.ZoneId", "of", cbm_type_named(arena, "java.time.ZoneId"));
|
|
REG_METHOD("java.time.ZoneId", "systemDefault", cbm_type_named(arena, "java.time.ZoneId"));
|
|
REG_METHOD("java.time.ZoneId", "getId", cbm_type_named(arena, "java.lang.String"));
|
|
|
|
REG_METHOD("java.time.format.DateTimeFormatter", "ofPattern",
|
|
cbm_type_named(arena, "java.time.format.DateTimeFormatter"));
|
|
REG_METHOD("java.time.format.DateTimeFormatter", "format",
|
|
cbm_type_named(arena, "java.lang.String"));
|
|
|
|
/* ── java.net (minimal) ──────────────────────────────────── */
|
|
REG_TYPE("java.net.URI", "URI", false, parents_object);
|
|
REG_TYPE("java.net.URL", "URL", false, parents_object);
|
|
REG_METHOD("java.net.URI", "create", cbm_type_named(arena, "java.net.URI"));
|
|
REG_METHOD("java.net.URI", "toString", cbm_type_named(arena, "java.lang.String"));
|
|
REG_METHOD("java.net.URI", "toURL", cbm_type_named(arena, "java.net.URL"));
|
|
REG_METHOD("java.net.URL", "openStream", cbm_type_named(arena, "java.io.InputStream"));
|
|
REG_METHOD("java.net.URL", "toString", cbm_type_named(arena, "java.lang.String"));
|
|
REG_CTOR("java.net.URL", "URL");
|
|
REG_CTOR("java.net.URI", "URI");
|
|
}
|