public AnonymousObjectTransformer(
      @NotNull String objectInternalName,
      @NotNull InliningContext inliningContext,
      boolean isSameModule,
      @NotNull Type newLambdaType) {
    this.isSameModule = isSameModule;
    this.state = inliningContext.state;
    this.typeMapper = state.getTypeMapper();
    this.inliningContext = inliningContext;
    this.oldObjectType = Type.getObjectType(objectInternalName);
    this.newLambdaType = newLambdaType;

    reader = InlineCodegenUtil.buildClassReaderByInternalName(state, objectInternalName);
    transformationResult = InlineResult.create();
  }
Пример #2
0
 /*
  *
  * @param node
  * @param parameters
  * @param inliningContext
  * @param lambdaType - in case on lambda 'invoke' inlining
  */
 public MethodInliner(
     @NotNull MethodNode node,
     @NotNull Parameters parameters,
     @NotNull InliningContext parent,
     @NotNull FieldRemapper nodeRemapper,
     boolean isSameModule,
     @NotNull String errorPrefix) {
   this.node = node;
   this.parameters = parameters;
   this.inliningContext = parent;
   this.nodeRemapper = nodeRemapper;
   this.isSameModule = isSameModule;
   this.errorPrefix = errorPrefix;
   this.typeMapper = parent.state.getTypeMapper();
   this.result = InlineResult.create();
 }