コード例 #1
0
  public boolean compareSame(FullMultinameAVM2Item other) {
    if (multinameIndex != other.multinameIndex) {
      return false;
    }
    GraphTargetItem tiName = name;
    if (name != null) {
      name = name.getThroughDuplicate();
    }
    while (tiName instanceof LocalRegAVM2Item) {
      if (((LocalRegAVM2Item) tiName).computedValue != null) {
        tiName =
            ((LocalRegAVM2Item) tiName)
                .computedValue
                .getThroughNotCompilable()
                .getThroughDuplicate();
      } else {
        break;
      }
    }

    GraphTargetItem tiName2 = other.name;
    if (tiName2 != null) {
      tiName2 = tiName2.getThroughDuplicate();
    }
    while (tiName2 instanceof LocalRegAVM2Item) {
      if (((LocalRegAVM2Item) tiName2).computedValue != null) {
        tiName2 =
            ((LocalRegAVM2Item) tiName2)
                .computedValue
                .getThroughNotCompilable()
                .getThroughDuplicate();
      } else {
        break;
      }
    }
    if (tiName != tiName2) {
      return false;
    }

    GraphTargetItem tiNameSpace = namespace;
    if (tiNameSpace != null) {
      tiNameSpace = tiNameSpace.getThroughDuplicate();
    }
    while (tiNameSpace instanceof LocalRegAVM2Item) {
      if (((LocalRegAVM2Item) tiNameSpace).computedValue != null) {
        tiNameSpace =
            ((LocalRegAVM2Item) tiNameSpace)
                .computedValue
                .getThroughNotCompilable()
                .getThroughDuplicate();
      }
    }

    GraphTargetItem tiNameSpace2 = other.namespace;
    if (tiNameSpace2 != null) {
      tiNameSpace2 = tiNameSpace2.getThroughDuplicate();
    }
    while (tiNameSpace2 instanceof LocalRegAVM2Item) {
      if (((LocalRegAVM2Item) tiNameSpace2).computedValue != null) {
        tiNameSpace2 =
            ((LocalRegAVM2Item) tiNameSpace2)
                .computedValue
                .getThroughNotCompilable()
                .getThroughDuplicate();
      }
    }
    if (tiNameSpace != tiNameSpace2) {
      return false;
    }
    return true;
  }