Bug 176 - Argumente mit Typvariabelen werden die Generics einschließlich

Bounds immer bei den Argumenten eingefügt
This commit is contained in:
michael 2019-12-05 21:51:53 +01:00
parent 6dc15acba4
commit c52da7951a
3 changed files with 11 additions and 3 deletions

View File

@ -63,7 +63,7 @@ public class Method extends SyntaxTreeNode implements IItemWithOffset, TypeScope
@Override @Override
public Token getOffset() { public Token getOffset() {
return null; return super.getOffset();
} }
public String getName() { public String getName() {

View File

@ -60,12 +60,12 @@ public class TypeInsertFactory {
private static synchronized Set<TypeInsertPoint> createGenericInsert(GenericsGeneratorResultForClass genericResult, ClassOrInterface cl, Method m, ResultSet resultSet, Token mOffset){ private static synchronized Set<TypeInsertPoint> createGenericInsert(GenericsGeneratorResultForClass genericResult, ClassOrInterface cl, Method m, ResultSet resultSet, Token mOffset){
Set<TypeInsertPoint> result = createGenericClassInserts(genericResult, cl); Set<TypeInsertPoint> result = createGenericClassInserts(genericResult, cl);
Resolver resolver = new Resolver(resultSet); Resolver resolver = new Resolver(resultSet);
if (m != null) { if (m != null) {
List<GenericsGeneratorResult> methodConstraints = genericResult.getMethodConstraintsByID(MethodUtility.createID(resolver, m)); List<GenericsGeneratorResult> methodConstraints = genericResult.getMethodConstraintsByID(MethodUtility.createID(resolver, m));
result.addAll(createMethodConstraints(methodConstraints, mOffset)); result.addAll(createMethodConstraints(methodConstraints, m.getOffset() != null ? m.getOffset() : mOffset));
} }
return result; return result;

View File

@ -73,6 +73,14 @@ public class TypeInsertPoint {
@Override @Override
public int compare(TypeInsertPoint o1, TypeInsertPoint o2) { public int compare(TypeInsertPoint o1, TypeInsertPoint o2) {
if (o1.point == null && o2.point == null) {
return 0;
} else if (o2.point == null) {
return 1;
} else if (o1.point == null) {
return -1;
}
if (o1.getPositionInCode() > o2.getPositionInCode()) { if (o1.getPositionInCode() > o2.getPositionInCode()) {
return 1; return 1;
} else if (o1.getPositionInCode() < o2.getPositionInCode()) { } else if (o1.getPositionInCode() < o2.getPositionInCode()) {