@Override public boolean hasType(String type) { return hasType(dependencyAnalyzer.getType(type)); }
void consume(DependencyType type) { if (!destination.hasType(type) && filterType(type) && destination.filter(type)) { propagate(type); } }
public void propagate(DependencyType type) { if (degree > DEGREE_THRESHOLD) { return; } if (!hasType(type) && filter(type)) { propagateCount++; moveToSeparateDomain(); typeSet.addType(type); scheduleSingleType(type, null); } }
for (DependencyType type : types) { boolean added = false; if (!destination.hasType(type) && destination.filter(type)) { types[j++] = type; added = true; for (DependencyType type : types) { boolean added = false; if (filterType(type) && !destination.hasType(type) && destination.filter(type)) { types[j++] = type; added = true;
for (int index : filteredTypes) { DependencyType type = dependencyAnalyzer.types.get(index); if (sourceNode.filter(type) && !targetNode.hasType(type) && targetNode.filter(type) && (filter == null || filter.match(type))) { types[j++] = type; for (int index = this.types.nextSetBit(0); index >= 0; index = this.types.nextSetBit(index + 1)) { DependencyType type = dependencyAnalyzer.types.get(index); if (sourceNode.filter(type) && !targetNode.hasType(type) && targetNode.filter(type) && (filter == null || filter.match(type))) { types[j++] = type; for (int i = 0; i < types.length; ++i) { DependencyType type = dependencyAnalyzer.types.get(smallTypes[i]); if (sourceNode.filter(type) && !targetNode.hasType(type) && targetNode.filter(type) && (filter == null || filter.match(type))) { types[j++] = type;
for (int i = 0; i < newTypes.length; ++i) { DependencyType type = newTypes[i]; if (!hasType(type) && filter(type)) { newTypes[j++] = type; } else if (!copied) {
boolean shouldMergeDomains() { if (!source.dependencyAnalyzer.domainOptimizationEnabled() || filter != null || !isDestSubsetOfSrc()) { return false; } if (destination.typeSet == null) { return true; } if (destination.typeSet == source.typeSet || destination.typeSet.origin == source || destination.typeSet.typeCount() > source.typeSet.typeCount()) { return false; } if (destination.splitCount > 4) { return false; } if (destination.typeSet.typeCount() == source.typeSet.typeCount() && destination.typeSet.origin != destination) { return false; } for (DependencyType type : destination.getTypesInternal()) { if (!source.hasType(type)) { return false; } } return true; }
@Override public boolean hasType(String type) { return hasType(dependencyChecker.getType(type)); }
@Override public void consume(DependencyType type) { if (filter != null && !filter.match(type)) { return; } if (type.getName().startsWith("[")) { source.getArrayItem().connect(destination.getArrayItem()); destination.getArrayItem().connect(source.getArrayItem()); } if (type.getName().equals("java.lang.Class")) { source.getClassValueNode().connect(destination.getClassValueNode()); } if (!destination.hasType(type)) { destination.propagate(type); } } }