typetools / typetools/checker-framework
Dataflow facts from ExpressionStatements
Open
@d367wang is already working on this.
Since Jul 2, 2020.
Dataflow
False Negative (missing warning or unsoundness)
- Dominant language
- Java
- Stars
- 1.1k
- Forks
- 440
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 134
Description
Follow-up on https://github.com/typetools/checker-framework/issues/3267#issuecomment-619656440
I can reproduce your comment about your new typestate checker using the Regex Checker:
void bar(String s) {
RegexUtil.isRegex(s);
if (true) {
// :: error: (argument.type.incompatible)
Pattern.compile(s); // Error missing
}
}
I'll look into wrapping all ExpressionStatements into an assignment to a temporary variable, turning the above code into:
void bar(String s) {
boolean res = RegexUtil.isRegex(s);
if (true) {
// :: error: (argument.type.incompatible)
Pattern.compile(s);
}
}
which correctly gives an error.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.