-
Bug
-
Resolution: Unresolved
-
P4
-
5.0, 7, 8
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
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
- blocks
-
JDK-6558545 Undecidable type system leads to stack overflow
- Open
- relates to
-
JDK-8078016 4.10.2: Cope with subtyping loops involving new capture variables
- Open