Fix Eclipse type-safety warnings in overrides of `ModRef` visitor-making methods (#175)

* Add missing type parameters to overrides of ModRef.makeModVisitor

* Add missing type parameters to overrides of ModRef.makeRefVisitor

This also required slightly generalizing the generic type signature of
the ModRef.makeRefVisitor return type.  Instead of returning
"RefVisitor<T, ExtendedHeapModel>", we now return "RefVisitor<T, ?
extends ExtendedHeapModel>".  We need that extra flexibility because
at least one override of this method returns a RefVisitor whose second
generic type parameter is a subclass of ExtendedHeapModel.
This commit is contained in:
Ben Liblit 2017-05-03 21:37:58 -05:00 committed by Manu Sridharan
parent 9159ea7636
commit fbf9abfa3a
4 changed files with 9 additions and 9 deletions

View File

@ -47,7 +47,7 @@ public class AstJavaModRef<T extends InstanceKey> extends AstModRef<T> {
}
@Override
protected RefVisitor makeRefVisitor(CGNode n, Collection<PointerKey> result, PointerAnalysis<T> pa, ExtendedHeapModel h) {
protected RefVisitor<T, ? extends ExtendedHeapModel> makeRefVisitor(CGNode n, Collection<PointerKey> result, PointerAnalysis<T> pa, ExtendedHeapModel h) {
return new AstJavaRefVisitor<>(n, result, pa, h);
}
@ -73,7 +73,7 @@ public class AstJavaModRef<T extends InstanceKey> extends AstModRef<T> {
}
@Override
protected ModVisitor makeModVisitor(CGNode n, Collection<PointerKey> result, PointerAnalysis<T> pa, ExtendedHeapModel h, boolean ignoreAllocHeapDefs) {
protected ModVisitor<T, ? extends ExtendedHeapModel> makeModVisitor(CGNode n, Collection<PointerKey> result, PointerAnalysis<T> pa, ExtendedHeapModel h, boolean ignoreAllocHeapDefs) {
return new AstJavaModVisitor<>(n, result, h, pa);
}

View File

@ -99,7 +99,7 @@ public class JavaScriptModRef<T extends InstanceKey> extends AstModRef<T> {
}
@Override
protected RefVisitor makeRefVisitor(CGNode n, Collection<PointerKey> result, PointerAnalysis<T> pa, ExtendedHeapModel h) {
protected RefVisitor<T, ? extends ExtendedHeapModel> makeRefVisitor(CGNode n, Collection<PointerKey> result, PointerAnalysis<T> pa, ExtendedHeapModel h) {
return new JavaScriptRefVisitor<>(n, result, pa, h);
}
@ -168,7 +168,7 @@ public class JavaScriptModRef<T extends InstanceKey> extends AstModRef<T> {
}
@Override
protected ModVisitor makeModVisitor(CGNode n, Collection<PointerKey> result, PointerAnalysis<T> pa, ExtendedHeapModel h, boolean ignoreAllocHeapDefs) {
protected ModVisitor<T, ? extends ExtendedHeapModel> makeModVisitor(CGNode n, Collection<PointerKey> result, PointerAnalysis<T> pa, ExtendedHeapModel h, boolean ignoreAllocHeapDefs) {
return new JavaScriptModVisitor<>(n, result, h, pa);
}
}

View File

@ -90,7 +90,7 @@ public class AstModRef<T extends InstanceKey> extends ModRef<T> {
}
@Override
protected RefVisitor makeRefVisitor(CGNode n, Collection<PointerKey> result, PointerAnalysis<T> pa, ExtendedHeapModel h) {
protected RefVisitor<T, ? extends ExtendedHeapModel> makeRefVisitor(CGNode n, Collection<PointerKey> result, PointerAnalysis<T> pa, ExtendedHeapModel h) {
return new AstRefVisitor<>(n, result, pa, (AstHeapModel)h);
}
@ -150,7 +150,7 @@ public class AstModRef<T extends InstanceKey> extends ModRef<T> {
}
@Override
protected ModVisitor makeModVisitor(CGNode n, Collection<PointerKey> result, PointerAnalysis<T> pa, ExtendedHeapModel h, boolean ignoreAllocHeapDefs) {
protected ModVisitor<T, ? extends ExtendedHeapModel> makeModVisitor(CGNode n, Collection<PointerKey> result, PointerAnalysis<T> pa, ExtendedHeapModel h, boolean ignoreAllocHeapDefs) {
return new AstModVisitor<>(n, result, (AstHeapModel)h, pa);
}

View File

@ -342,7 +342,7 @@ public class ModRef<T extends InstanceKey> {
return makeModVisitor(n, result, pa, h, false);
}
protected ModVisitor<T,? extends ExtendedHeapModel> makeModVisitor(CGNode n, Collection<PointerKey> result, PointerAnalysis<T> pa, ExtendedHeapModel h,
protected ModVisitor<T, ? extends ExtendedHeapModel> makeModVisitor(CGNode n, Collection<PointerKey> result, PointerAnalysis<T> pa, ExtendedHeapModel h,
boolean ignoreAllocHeapDefs) {
return new ModVisitor<>(n, result, h, pa, ignoreAllocHeapDefs);
}
@ -368,8 +368,8 @@ public class ModRef<T extends InstanceKey> {
return hexcl == null ? result : hexcl.filter(result);
}
protected RefVisitor<T, ExtendedHeapModel> makeRefVisitor(CGNode n, Collection<PointerKey> result, PointerAnalysis<T> pa, ExtendedHeapModel h) {
return new RefVisitor<T, ExtendedHeapModel>(n, result, pa, h);
protected RefVisitor<T, ? extends ExtendedHeapModel> makeRefVisitor(CGNode n, Collection<PointerKey> result, PointerAnalysis<T> pa, ExtendedHeapModel h) {
return new RefVisitor<>(n, result, pa, h);
}
/**