Consider constructors when creating class generics
This commit is contained in:
parent
b04201de42
commit
5c62191f3b
0
resources/bytecode/javFiles/PairNoGenerics.jav
Normal file
0
resources/bytecode/javFiles/PairNoGenerics.jav
Normal file
@ -1,5 +1,6 @@
|
||||
package de.dhbwstuttgart.target.generate;
|
||||
|
||||
import com.google.common.collect.Streams;
|
||||
import de.dhbwstuttgart.parser.NullToken;
|
||||
import de.dhbwstuttgart.syntaxtree.ClassOrInterface;
|
||||
import de.dhbwstuttgart.syntaxtree.Constructor;
|
||||
@ -18,6 +19,8 @@ import de.dhbwstuttgart.util.Pair;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
import java.util.stream.StreamSupport;
|
||||
|
||||
public abstract class GenerateGenerics {
|
||||
|
||||
@ -145,6 +148,7 @@ public abstract class GenerateGenerics {
|
||||
} else if (constraint instanceof PairTPHEqualTPH p) {
|
||||
equality.put(p.getLeft(), p.getRight());
|
||||
} else if (constraint instanceof PairTPHequalRefTypeOrWildcardType p) {
|
||||
System.out.println(p.left + " = " + p.right);
|
||||
concreteTypes.put(new TPH(p.left), p.right);
|
||||
}
|
||||
}
|
||||
@ -761,14 +765,14 @@ public abstract class GenerateGenerics {
|
||||
oldFamily.clear();
|
||||
oldFamily.putAll(familyOfMethods);
|
||||
familyOfMethods.clear();
|
||||
for (var method : classOrInterface.getMethods()) {
|
||||
Stream.concat(classOrInterface.getMethods().stream(), classOrInterface.getConstructors().stream()).forEach(method -> {
|
||||
family(classOrInterface, method);
|
||||
}
|
||||
});
|
||||
} while(!oldFamily.equals(familyOfMethods));
|
||||
|
||||
for (var method : classOrInterface.getMethods()) {
|
||||
Stream.concat(classOrInterface.getMethods().stream(), classOrInterface.getConstructors().stream()).forEach(method -> {
|
||||
generics(classOrInterface, method);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void findChain(Set<TPH> referenced, Set<Pair> input, Set<Pair> output, TPH start, TPH end, Set<TPH> chain) {
|
||||
|
Loading…
Reference in New Issue
Block a user