Feedback and comments on ARM proposal
Mark Mahieu
markmahieu at googlemail.com
Sat Mar 21 14:26:15 PDT 2009
On 21 Mar 2009, at 18:01, Joshua Bloch wrote:
> I don't think I did a good job of explaining the problem. Consider
> this:
Ah, ok I'm with you! Thanks for the explanation.
> The problem with Nope is that it contains two "magic
> methods" (sole parameterless method in an interface that directly
> extends MagicMarker). Is it sufficient to say that a class must
> have one and only one magic method to make it eligible for
> automatic resource management?
Right, clearly we'd need to be more specific about all this. I guess
I should offer something up, so here's a first stab at it (caveat:
not JLS-quality):
A variable/expression with static type T is eligible for automatic
resource management iff T has exactly one method m for which all of
the following hold:
* m has no parameters
* there exists one or more type S where:
* S declares exactly one method, which is override-equivalent with m
* S is an interface which directly extends MagicMarker
* S :> T
I suppose we might also want to consider whether it should be an
error for a class to implement MagicMarker directly, or for an
interface that extends it to supply the 'wrong' number/type of
methods, etc.
> Is it practical to implement this in the compiler? I dunno.
To me, it bears more than a passing resemblance to determining the
single-abstract-method in CICE, and I don't remember that aspect as
being particularly difficult to implement. Purely anecdotal though,
of course.
>
> Josh
>
Mark
More information about the coin-dev
mailing list