| import org.checkerframework.checker.initialization.qual.UnderInitialization; |
| import org.checkerframework.checker.nullness.qual.*; |
| |
| public class FlowConstructor { |
| |
| String a; |
| String b; |
| |
| public FlowConstructor(float f) { |
| a = "m"; |
| b = "n"; |
| semiRawMethod(); |
| } |
| |
| public FlowConstructor(int p) { |
| a = "m"; |
| b = "n"; |
| // :: error: (method.invocation) |
| nonRawMethod(); |
| } |
| |
| public FlowConstructor(double p) { |
| a = "m"; |
| // :: error: (method.invocation) |
| nonRawMethod(); // error |
| b = "n"; |
| } |
| |
| void nonRawMethod() { |
| a.toString(); |
| b.toString(); |
| } |
| |
| void semiRawMethod(@UnderInitialization(FlowConstructor.class) FlowConstructor this) { |
| a.toString(); |
| b.toString(); |
| } |
| } |