gnu.kawa.reflect
Class CompileReflect

java.lang.Object
  extended by gnu.kawa.reflect.CompileReflect

public class CompileReflect
extends java.lang.Object


Constructor Summary
CompileReflect()
           
 
Method Summary
static int checkKnownClass(Type type, Compilation comp)
          Check if class exists.
static ApplyExp inlineClassName(ApplyExp exp, int carg, InlineCalls walker)
          Resolve class specifier to ClassType at inline time.
static Expression validateApplyInstanceOf(ApplyExp exp, InlineCalls visitor, Type required, Procedure proc)
           
static Expression validateApplySlotGet(ApplyExp exp, InlineCalls visitor, Type required, Procedure proc)
           
static Expression validateApplySlotSet(ApplyExp exp, InlineCalls visitor, Type required, Procedure proc)
           
static Expression validateApplyTypeSwitch(ApplyExp exp, InlineCalls visitor, Type required, Procedure proc)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CompileReflect

public CompileReflect()
Method Detail

checkKnownClass

public static int checkKnownClass(Type type,
                                  Compilation comp)
Check if class exists.

Returns:
1 if class actually exists; -1 is class should exist, but doesn't; and 0 otherwise.

inlineClassName

public static ApplyExp inlineClassName(ApplyExp exp,
                                       int carg,
                                       InlineCalls walker)
Resolve class specifier to ClassType at inline time. This is an optimization to avoid having a module-level binding created for the class name.


validateApplyInstanceOf

public static Expression validateApplyInstanceOf(ApplyExp exp,
                                                 InlineCalls visitor,
                                                 Type required,
                                                 Procedure proc)

validateApplySlotGet

public static Expression validateApplySlotGet(ApplyExp exp,
                                              InlineCalls visitor,
                                              Type required,
                                              Procedure proc)

validateApplySlotSet

public static Expression validateApplySlotSet(ApplyExp exp,
                                              InlineCalls visitor,
                                              Type required,
                                              Procedure proc)

validateApplyTypeSwitch

public static Expression validateApplyTypeSwitch(ApplyExp exp,
                                                 InlineCalls visitor,
                                                 Type required,
                                                 Procedure proc)