Details
-
Improvement
-
Status: Open
-
Minor
-
Resolution: Unresolved
-
None
-
None
-
None
Description
Is it possible to extend the x instanceof C && x.methodOfC() flow typing to include:
- x.class == C && x...
- x.getClass() == C && x...
- x.getClass() === C && x...
- x.getClass().is(C) && x...
- and maybe even isCase and in?
Example:
@TypeChecked def m(def obj) { //def a = (obj instanceof String && obj.equalsIgnoreCase('a')) def b = (obj.getClass() == String && obj.equalsIgnoreCase('b')) def c = (obj.class == String && obj.equalsIgnoreCase('c')) def d = (obj.class.is(String) && obj.equalsIgnoreCase('d')) def e = (obj.class.isCase(String) && obj.equalsIgnoreCase('e')) def f = (obj in [String, StringBuffer] && obj.somethingFromLUB()) // bonus }