system/src/sc/lang/java/IdentifierExpression.java
static void checkForDynMethod(Object methodType, Object referenceTypeObj, Expression expr) {
      if (expr.bindingDirection != null) {

         TypeDeclaration referenceTD;
         LayeredSystem sys = expr.getLayeredSystem();
         if (referenceTypeObj instanceof TypeDeclaration) {
            if (!(referenceTD = (TypeDeclaration) referenceTypeObj).getUseRuntimeReflection()) {
               if (methodType instanceof ParamTypedMethod)
                  methodType = ((ParamTypedMethod) methodType).method;

               if (referenceTD.useExternalDynType)
                  sys.buildInfo.addExternalDynMethod(referenceTypeObj, methodType, expr.getJavaModel());
               else if (methodType instanceof AbstractMethodDefinition)
                  ((AbstractMethodDefinition) methodType).needsDynInvoke = true;
               else {
                  referenceTD.addDynInvokeMethod(methodType, expr.getJavaModel());
               }
            }
            // else - no need to do runtime reflection for this type
         }
         else if (sys != null && !sys.useRuntimeReflection) {
            sys.buildInfo.addExternalDynMethod(referenceTypeObj, methodType, expr.getJavaModel());
         }
      }
   }
/**
    * We have an identifier expression which points to a method invocation.  If this is a binding, that requires
    * marking that method as needing dynamic invocation if we are not able to use runtime reflection.
    */
We have an identifier expression which points to a method invocation.  If this is a binding, that requires
marking that method as needing dynamic invocation if we are not able to use runtime reflection.
We have an identifier expression which points to a method invocation . If this is a binding that requires marking that method as needing dynamic invocation if we are not able to use runtime reflection .
static void checkForDynMethod(Object methodType, Object referenceTypeObj, Expression expr) {
      if (expr.bindingDirection != null) {
         TypeDeclaration referenceTD;
         LayeredSystem sys = expr.getLayeredSystem();
         if (referenceTypeObj instanceof TypeDeclaration) {
            if (!(referenceTD = (TypeDeclaration) referenceTypeObj).getUseRuntimeReflection()) {
               if (methodType instanceof ParamTypedMethod)
                  methodType = ((ParamTypedMethod) methodType).method;
               if (referenceTD.useExternalDynType)
                  sys.buildInfo.addExternalDynMethod(referenceTypeObj, methodType, expr.getJavaModel());
               else if (methodType instanceof AbstractMethodDefinition)
                  ((AbstractMethodDefinition) methodType).needsDynInvoke = true;
               else {
                  referenceTD.addDynInvokeMethod(methodType, expr.getJavaModel());
               }
            }
         }
         else if (sys != null && !sys.useRuntimeReflection) {
            sys.buildInfo.addExternalDynMethod(referenceTypeObj, methodType, expr.getJavaModel());
         }
      }
   }
static void checkForDynMethod ( Object methodType , Object referenceTypeObj , Expression expr ) { if ( expr . bindingDirection != null ) { TypeDeclaration referenceTD ; LayeredSystem sys = expr . getLayeredSystem ( ) ; if ( referenceTypeObj instanceof TypeDeclaration ) { if ( ! ( referenceTD = ( TypeDeclaration ) referenceTypeObj ) . getUseRuntimeReflection ( ) ) { if ( methodType instanceof ParamTypedMethod ) methodType = ( ( ParamTypedMethod ) methodType ) . method ; if ( referenceTD . useExternalDynType ) sys . buildInfo . addExternalDynMethod ( referenceTypeObj , methodType , expr . getJavaModel ( ) ) ; else if ( methodType instanceof AbstractMethodDefinition ) ( ( AbstractMethodDefinition ) methodType ) . needsDynInvoke = true ; else { referenceTD . addDynInvokeMethod ( methodType , expr . getJavaModel ( ) ) ; } } } else if ( sys != null && ! sys . useRuntimeReflection ) { sys . buildInfo . addExternalDynMethod ( referenceTypeObj , methodType , expr . getJavaModel ( ) ) ; } } }
We have an identifier expression which points to a method invocation.
We have an identifier expression which points to a method invocation .
// else - no need to do runtime reflection for this type