On 2/18/2021 7:52 AM, Tagir Valeev wrote:
Hello!
Thank you!
There's a sample in Nested Record and Array Patterns draft:
static void printColorOfUpperLeftPoint(Object o) {
if (o instanceof Rectangle(ColoredPoint ul, ColoredPoint lr)){
if (ul instanceof ColoredPoint(Point p, Color c)) {
System.out.println(c);
}
}
}
It looks like here, the nested pattern "ul instanceof
ColoredPoint(Point p, Color c)" is total. I thought that there's idea
to prohibit total patterns with instanceof (at least total type test
patterns are already prohibited). Please correct me if I'm wrong.
Slightly wrong :)
We prohibit total _type_ patterns in instanceof. (Alternately, we could
phrase it: we prohibit total patterns with empty remainder.) But a total
record pattern is OK, because it has remainder { null }.
Recall the motivation: avoid confusion with `o instanceof Object`. Only
the patterns where such a confusion could occur need to be restricted.