Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8244711

[lworld] Javac needs to tweak checks for interface implementation by an inline type.

    XMLWordPrintable

Details

    • Bug
    • Status: Resolved
    • P4
    • Resolution: Fixed
    • repo-valhalla
    • repo-valhalla
    • tools
    • generic
    • generic

    Description

      https://cr.openjdk.java.net/~briangoetz/valhalla/sov/02-object-model.html calls for an inline class to be an island in the type
      system.

      So an inline class V at the type system level should answer false to
      the question:

          V <: jlO ? (V.ref <: jlO)

      Likewise if an inline class declaration V spells out that it implements an interface IFoo, it is really V.ref that implements IFoo.

      Here is the relevant text from the design document:

      // ---

      Interfaces
      Historically, for a class to implement an interface meant several things:

      Conformance. The class has, as members, all the members of the interface.
      Transitivity. Any subclasses of this class also implement the interface.
      Subtyping. The class type is a subtype of the interface type.
      We need to refine this last bullet, subtyping, in a small way to support inline classes; we say that the reference projection of the inline class is a subtype of the interface type. (Identity class types are their own reference projection, so this statement holds for all classes.) Similarly, if an inline class extends an abstract class, this means that the reference projection is a subtype of the abstract class.

      // ----

      Attachments

        Issue Links

          Activity

            People

              sadayapalam Srikanth Adayapalam
              sadayapalam Srikanth Adayapalam
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: