package jetbrains.mps.kotlin.behavior;

/*Generated by MPS */

import org.jetbrains.mps.openapi.model.SNode;
import jetbrains.mps.internal.collections.runtime.ListSequence;
import jetbrains.mps.lang.smodel.generator.smodelAdapter.SNodeOperations;
import org.jetbrains.mps.openapi.language.SInterfaceConcept;
import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory;

public class ImplicitCallReceiver implements MemberReceiver {
  private final SNode myNode;

  public ImplicitCallReceiver(SNode sourceNode) {
    myNode = sourceNode;
  }

  @Override
  public Iterable<TypeReference> getTypeReferences() {
    return ListSequence.fromList(SNodeOperations.getNodeAncestors(myNode, CONCEPTS.IThisReceiverProvider$mP, false)).translate((it) -> (Iterable<TypeReference>) IThisReceiverProvider__BehaviorDescriptor.getThisTypeReferences_idxpyqH1FuA0.invoke(it));
  }

  private static final class CONCEPTS {
    /*package*/ static final SInterfaceConcept IThisReceiverProvider$mP = MetaAdapterFactory.getInterfaceConcept(0x6b3888c1980244d8L, 0x8baff8e6c33ed689L, 0x85989ab41addf50L, "jetbrains.mps.kotlin.structure.IThisReceiverProvider");
  }
}
