A peek at the roadmap for pattern matching and more
Remi Forax
forax at univ-mlv.fr
Wed Aug 12 23:28:09 UTC 2020
> De: "Brian Goetz" <brian.goetz at oracle.com>
> À: "amber-spec-experts" <amber-spec-experts at openjdk.java.net>
> Envoyé: Mercredi 12 Août 2020 22:44:04
> Objet: A peek at the roadmap for pattern matching and more
> Several folks have asked that I sketch out a little more of the roadmap for
> pattern matching, so that we can better evaluate the features being discussed
> now (since, for example, the semantics of pattern matching are heavily
> influenced by nested patterns.)
> I've checked into two drafts which are VERY ROUGH, but which correspond to the
> next two logical increments after patterns in switch.
> Deconstruction patterns:
> [
> https://github.com/openjdk/amber-docs/blob/master/eg-drafts/deconstruction-patterns-records-and-classes.md
> |
> https://github.com/openjdk/amber-docs/blob/master/eg-drafts/deconstruction-patterns-records-and-classes.md
> ]
> This document outlines the semantics of deconstruction patterns and nested
> patterns, and declaration of deconstructors in classes.
In the code:
public deconstructor B(int a, int b) {
super(var aa) = this;
a = aa;
b = this.b;
}
i believe the first line should be
A(var aa) = super;
I know that you have consider something like this, but i prefer making the deconstructor a method returning a tuple at Java level, to be closer to the JVM level.
So a syntax more like
class Point {
int x;
int y;
(int x, int y) deconstructor {
return (this.x, this.y);
}
}
Conceptually, it's also more like the reverse of a constructor, a constructor takes the values from the stack to move them to the heap, a desconstructor takes the value from the heap and move them to the stack.
> (There are some teasers for related features, mostly to put these in context,
> but I don't want to get distracted on those features until these are nailed
> down, so take them as merely context.)
Rémi
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/amber-spec-experts/attachments/20200813/4e894319/attachment.htm>
More information about the amber-spec-experts
mailing list