docs: protected List<Receiver<String>> makeOwnerList(final Expression objectExpression) {
          final ClassNode receiver = getType(objectExpression);
          List<Receiver<String>> owners = new LinkedList<Receiver<String>>();
          owners.add(Receiver.<String>make(receiver));
          if (isClassClassNodeWrappingConcreteType(receiver)) {
              GenericsType clazzGT = receiver.getGenericsTypes()[0];
              owners.add(0, Receiver.<String>make(clazzGT.getType()));
          }
          if (receiver.isInterface()) {
              // GROOVY-xxxx
              owners.add(Receiver.<String>make(OBJECT_TYPE));
          }
          addSelfTypes(receiver, owners);
          if (!typeCheckingContext.temporaryIfBranchTypeInformation.empty()) {
              List<ClassNode> potentialReceiverType = getTemporaryTypesForExpression(objectExpression);
              if (potentialReceiverType != null) {
                  for (ClassNode node : potentialReceiverType) {
                      owners.add(Receiver.<String>make(node));
                  }
              }
          }
          if (typeCheckingContext.lastImplicitItType != null
                  && objectExpression instanceof VariableExpression
                  && ((VariableExpression) objectExpression).getName().equals("it")) {
              owners.add(Receiver.<String>make(typeCheckingContext.lastImplicitItType));
          }
          return owners;
      }