Ejemplo n.º 1
0
      @Override
      public StackValue innerValue(
          DeclarationDescriptor d,
          LocalLookup enclosingLocalLookup,
          GenerationState state,
          MutableClosure closure,
          Type classType) {
        if (closure.getEnclosingReceiverDescriptor() != d) return null;

        JetType receiverType = ((CallableDescriptor) d).getReceiverParameter().getType();
        Type type = state.getTypeMapper().mapType(receiverType);
        StackValue innerValue = StackValue.field(type, classType, CAPTURED_RECEIVER_FIELD, false);
        closure.setCaptureReceiver();

        return innerValue;
      }