JDK-8016206 : Develop a strategy for coping with expansive inheritance
  • Type: Bug
  • Component: specification
  • Sub-Component: language
  • Affected Version: 5.0,7,8
  • Priority: P4
  • Status: Open
  • Resolution: Unresolved
  • Submitted: 2013-06-07
  • Updated: 2015-12-17
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
tbd_majorUnresolved
Related Reports
Blocks :  
Relates :  
Description
Kennedy and Pierce, in "On Decidability of Nominal Subtyping with Variance" [1], identified "expansive inheritance" as a source of difficult and possibly undecidable subtyping problems.  The kinds of declarations necessary to create these problems are not common (and perhaps completely useless), but to ensure correctness, the language should account for them in some way.

Algorithms that risk nontermination in the presence of expansive inheritance:
- Subtyping
- Inference constraint reduction
- Inference bound incorporation

Possible strategies for coping:
- Prohibit expansive declarations (analogous to circular inheritance)
- Detect expansive loops in the algorithms

[1] http://research.microsoft.com/apps/pubs/default.aspx?id=64041