| // The test cases GenericNull, FieldAccessTest, and InferTypeArgs often fail together. |
| // See the comments at GenericNull for some tips about what might be wrong. |
| |
| /** |
| * This test came from running the compilermsgs checker in the checker-framework/checker directory |
| * It's to test the result of type argument inference. We used to have the following return found: |
| * FlowAnalysis[ extends @UnknownPropertyKey CFAbstractAnalysis<Value[ extends @UnknownPropertyKey |
| * CFAbstractValue<Value[ extends @UnknownPropertyKey CFAbstractValue<Value> |
| * super @UnknownPropertyKey Void]> super @UnknownPropertyKey Void], Store[ |
| * extends @UnknownPropertyKey CFAbstractStore<Value[ extends @UnknownPropertyKey |
| * CFAbstractValue<Value[ extends @UnknownPropertyKey CFAbstractValue<Value> |
| * super @UnknownPropertyKey Void]> super @UnknownPropertyKey Void], Store[ |
| * extends @UnknownPropertyKey CFAbstractStore<Value[ extends @UnknownPropertyKey |
| * CFAbstractValue<Value[ extends @UnknownPropertyKey CFAbstractValue<Value> |
| * super @UnknownPropertyKey Void]> super @UnknownPropertyKey Void], Store> |
| * super @UnknownPropertyKey Void]> super @UnknownPropertyKey Void], TransferFunction[ |
| * extends @UnknownPropertyKey CFAbstractTransfer<Value[ extends @UnknownPropertyKey |
| * CFAbstractValue<Value[ extends @UnknownPropertyKey CFAbstractValue<Value> |
| * super @UnknownPropertyKey Void]> super @UnknownPropertyKey Void], Store[ |
| * extends @UnknownPropertyKey CFAbstractStore<Value[ extends @UnknownPropertyKey |
| * CFAbstractValue<Value[ extends @UnknownPropertyKey CFAbstractValue<Value> |
| * super @UnknownPropertyKey Void]> super @UnknownPropertyKey Void], Store[ |
| * extends @UnknownPropertyKey CFAbstractStore<Value[ extends @UnknownPropertyKey |
| * CFAbstractValue<Value[ extends @UnknownPropertyKey CFAbstractValue<Value> |
| * super @UnknownPropertyKey Void]> super @UnknownPropertyKey Void], Store> |
| * super @UnknownPropertyKey Void]> super @UnknownPropertyKey Void], TransferFunction[ |
| * extends @UnknownPropertyKey CFAbstractTransfer<Value[ extends @UnknownPropertyKey |
| * CFAbstractValue<Value[ extends @UnknownPropertyKey CFAbstractValue<Value> |
| * super @UnknownPropertyKey Void]> super @UnknownPropertyKey Void], Store[ |
| * extends @UnknownPropertyKey CFAbstractStore<Value[ extends @UnknownPropertyKey |
| * CFAbstractValue<Value[ extends @UnknownPropertyKey CFAbstractValue<Value> |
| * super @UnknownPropertyKey Void]> super @UnknownPropertyKey Void], Store[ |
| * extends @UnknownPropertyKey CFAbstractStore<Value[ extends @UnknownPropertyKey |
| * CFAbstractValue<Value[ extends @UnknownPropertyKey CFAbstractValue<Value> |
| * super @UnknownPropertyKey Void]> super @UnknownPropertyKey Void], Store> |
| * super @UnknownPropertyKey Void]> super @UnknownPropertyKey Void], TransferFunction> |
| * super @UnknownPropertyKey Void]> super @UnknownPropertyKey Void]> super @UnknownPropertyKey Void] |
| * required: FlowAnalysis[ extends @UnknownPropertyKey CFAbstractAnalysis<Value[ |
| * extends @UnknownPropertyKey CFAbstractValue<Value[ extends @UnknownPropertyKey |
| * CFAbstractValue<Value> super @Bottom Void]> super @Bottom Void], Store[ |
| * extends @UnknownPropertyKey CFAbstractStore<Value[ extends @UnknownPropertyKey |
| * CFAbstractValue<Value[ extends @UnknownPropertyKey CFAbstractValue<Value> super @Bottom Void]> |
| * super @Bottom Void], Store[ extends @UnknownPropertyKey CFAbstractStore<Value[ |
| * extends @UnknownPropertyKey CFAbstractValue<Value[ extends @UnknownPropertyKey |
| * CFAbstractValue<Value> super @Bottom Void]> super @Bottom Void], Store> super @Bottom Void]> |
| * super @Bottom Void], TransferFunction[ extends @UnknownPropertyKey CFAbstractTransfer<Value[ |
| * extends @UnknownPropertyKey CFAbstractValue<Value[ extends @UnknownPropertyKey |
| * CFAbstractValue<Value> super @Bottom Void]> super @Bottom Void], Store[ |
| * extends @UnknownPropertyKey CFAbstractStore<Value[ extends @UnknownPropertyKey |
| * CFAbstractValue<Value[ extends @UnknownPropertyKey CFAbstractValue<Value> super @Bottom Void]> |
| * super @Bottom Void], Store[ extends @UnknownPropertyKey CFAbstractStore<Value[ |
| * extends @UnknownPropertyKey CFAbstractValue<Value[ extends @UnknownPropertyKey |
| * CFAbstractValue<Value> super @Bottom Void]> super @Bottom Void], Store> super @Bottom Void]> |
| * super @Bottom Void], TransferFunction[ extends @UnknownPropertyKey CFAbstractTransfer<Value[ |
| * extends @UnknownPropertyKey CFAbstractValue<Value[ extends @UnknownPropertyKey |
| * CFAbstractValue<Value> super @Bottom Void]> super @Bottom Void], Store[ |
| * extends @UnknownPropertyKey CFAbstractStore<Value[ extends @UnknownPropertyKey |
| * CFAbstractValue<Value[ extends @UnknownPropertyKey CFAbstractValue<Value> super @Bottom Void]> |
| * super @Bottom Void], Store[ extends @UnknownPropertyKey CFAbstractStore<Value[ |
| * extends @UnknownPropertyKey CFAbstractValue<Value[ extends @UnknownPropertyKey |
| * CFAbstractValue<Value> super @Bottom Void]> super @Bottom Void], Store> super @Bottom Void]> |
| * super @Bottom Void], TransferFunction> super @Bottom Void]> super @Bottom Void]> super @Bottom |
| * Void] |
| */ |
| class CFAbstractValue<V extends CFAbstractValue<V>> {} |
| |
| class CFAbstractAnalysis<V extends CFAbstractValue<V>> {} |
| |
| class GenericAnnotatedTypeFactory< |
| Value extends CFAbstractValue<Value>, FlowAnalysis extends CFAbstractAnalysis<Value>> { |
| |
| @SuppressWarnings("immutability:type.argument") |
| protected FlowAnalysis createFlowAnalysis() { |
| FlowAnalysis result = invokeConstructorFor(); |
| return result; |
| } |
| |
| @SuppressWarnings({"nullness:return", "lock:return", "immutabilitysub:type.argument"}) |
| public static <T> T invokeConstructorFor() { |
| return null; |
| } |
| } |