public static class Compiler.NewInstanceExpr extends Compiler.ObjExpr
Modifier and Type | Class and Description |
---|---|
(package private) static class |
Compiler.NewInstanceExpr.DeftypeParser |
(package private) static class |
Compiler.NewInstanceExpr.ReifyParser |
Modifier and Type | Field and Description |
---|---|
(package private) java.util.Map<IPersistentVector,java.util.Set<java.lang.Class>> |
covariants |
(package private) IPersistentCollection |
methods |
(package private) java.util.Map<IPersistentVector,java.lang.reflect.Method> |
mmap |
altCtorDrops, classMeta, closes, closesExprs, column, compiledClass, CONST_PREFIX, constants, constantsID, DYNAMIC_CLASSLOADER_TYPE, fields, getClassLoaderMethod, getClassMethod, getConstantsMethod, hintedFields, ILOOKUP_SITE_TYPE, ILOOKUP_THUNK_TYPE, internalName, isStatic, KEYWORD_LOOKUPSITE_TYPE, keywordCallsites, keywords, kwintern, line, name, objtype, onceOnly, protocolCallsites, readStringMethod, src, symintern, tag, thisName, varCallsites, varGetMethod, varGetRawMethod, varintern, vars, voidctor, volatiles
Constructor and Description |
---|
Compiler.NewInstanceExpr(java.lang.Object tag) |
Modifier and Type | Method and Description |
---|---|
(package private) static Compiler.ObjExpr |
build(IPersistentVector interfaceSyms,
IPersistentVector fieldSyms,
Symbol thisSym,
java.lang.String tagName,
Symbol className,
Symbol typeTag,
ISeq methodForms,
java.lang.Object frm) |
(package private) static java.lang.Class |
compileStub(java.lang.String superName,
Compiler.NewInstanceExpr ret,
java.lang.String[] interfaceNames,
java.lang.Object frm)
Current host interop uses reflection, which requires pre-existing classes
Work around this by:
Generate a stub class that has the same interfaces and fields as the class we are generating.
|
(package private) static void |
considerMethod(java.lang.reflect.Method m,
java.util.Map mm) |
protected void |
emitMethods(ClassVisitor cv) |
protected void |
emitStatics(ClassVisitor cv) |
static java.util.Map[] |
gatherMethods(java.lang.Class sc,
ISeq interfaces) |
(package private) static void |
gatherMethods(java.lang.Class c,
java.util.Map mm) |
(package private) static java.lang.String[] |
interfaceNames(IPersistentVector interfaces) |
static IPersistentVector |
msig(java.lang.reflect.Method m) |
(package private) static java.lang.String |
slashname(java.lang.Class c) |
cachedClassName, cachedProtoFnName, cachedProtoImplName, cachedVarName, closes, column, compile, compiledClass, constantName, constants, constantsID, constantType, ctorTypes, emit, emitAssignLocal, emitClearCloses, emitConstant, emitConstants, emitKeyword, emitLetFnInits, emitListAsObjectArray, emitValue, emitVar, emitVarValue, eval, getCompiledClass, getJavaClass, hasJavaClass, internalName, isDeftype, isMutable, isVolatile, keywords, line, name, objtype, siteName, siteNameStatic, supportsMeta, thisName, thunkName, thunkNameStatic, trimGenID, varCallsiteName, vars
IPersistentCollection methods
java.util.Map<IPersistentVector,java.lang.reflect.Method> mmap
java.util.Map<IPersistentVector,java.util.Set<java.lang.Class>> covariants
static Compiler.ObjExpr build(IPersistentVector interfaceSyms, IPersistentVector fieldSyms, Symbol thisSym, java.lang.String tagName, Symbol className, Symbol typeTag, ISeq methodForms, java.lang.Object frm)
static java.lang.Class compileStub(java.lang.String superName, Compiler.NewInstanceExpr ret, java.lang.String[] interfaceNames, java.lang.Object frm)
static java.lang.String[] interfaceNames(IPersistentVector interfaces)
static java.lang.String slashname(java.lang.Class c)
protected void emitStatics(ClassVisitor cv)
emitStatics
in class Compiler.ObjExpr
protected void emitMethods(ClassVisitor cv)
emitMethods
in class Compiler.ObjExpr
public static IPersistentVector msig(java.lang.reflect.Method m)
static void considerMethod(java.lang.reflect.Method m, java.util.Map mm)
static void gatherMethods(java.lang.Class c, java.util.Map mm)
public static java.util.Map[] gatherMethods(java.lang.Class sc, ISeq interfaces)