Skip to content

Commit 1741e15

Browse files
committed
Fix rendering error
1 parent 4523777 commit 1741e15

1 file changed

Lines changed: 2 additions & 1 deletion

File tree

docs/user/SupportedFeatures/JavaCoverage.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
hide:
33
- toc
4+
approved: RB
45
---
56

67
# Java Coverage
@@ -60,7 +61,7 @@ together with the relevant **JLS** section.
6061
| `switch` statement | Java 1.0 (1996) | selector types widened: `enum` ([JSR 201](https://jcp.org/en/jsr/detail?id=201){target="_blank" rel="noopener"}, Java 5), `String` ([JSR 334](https://jcp.org/en/jsr/detail?id=334){target="_blank" rel="noopener"}, Java 7), both under [§14.11](https://docs.oracle.com/javase/specs/jls/se21/html/jls-14.html#jls-14.11){target="_blank" rel="noopener"}; arrow labels ([JEP 361](https://openjdk.org/jeps/361){target="_blank" rel="noopener"}, Java 14) & patterns ([JEP 441](https://openjdk.org/jeps/441){target="_blank" rel="noopener"}, Java 21); see below | :material-check-bold:{ style="color:#2e9e44" } | Lowered to an `if`-cascade. Integer selectors work; an `enum` selector needs *qualified* case labels (`case E.C:`); the standard unqualified `case C:` fails to resolve (see *Strings in `switch`* for `String`). |
6162
| `instanceof` type test | Java 1.0 (1996) | pattern binding added Java 16 ([JEP 394](https://openjdk.org/jeps/394){target="_blank" rel="noopener"}, see below) | :material-check-bold:{ style="color:#2e9e44" } | Plain type test only; the pattern-binding form is separate. |
6263
| Floating point (`float`, `double`) | Java 1.0 (1996) | strict-by-default restored in Java 17 ([JEP 306](https://openjdk.org/jeps/306){target="_blank" rel="noopener"}, [§15.4](https://docs.oracle.com/javase/specs/jls/se21/html/jls-15.html#jls-15.4){target="_blank" rel="noopener"}) | :material-check-bold:{ style="color:#2e9e44" } | Full taclet theory (`rules/float/`), including `strictfp`. |
63-
| Generics | Java 5 (2004), [JSR 14](https://jcp.org/en/jsr/detail?id=14){target="_blank" rel="noopener"} | diamond ([JSR 334](https://jcp.org/en/jsr/detail?id=334){target="_blank" rel="noopener"}, Java 7, [§15.9.1](https://docs.oracle.com/javase/specs/jls/se21/html/jls-15.html#jls-15.9.1){target="_blank" rel="noopener"}), improved inference ([JSR 335](https://jcp.org/en/jsr/detail?id=335){target="_blank" rel="noopener"}, Java 8, [§18](https://docs.oracle.com/javase/specs/jls/se21/html/jls-18.html){target="_blank" rel="noopener"}), `var` lambda params ([JEP 323](https://openjdk.org/jeps/323){target="_blank" rel="noopener"}, Java 11) | :material-minus:{ style="color:#9aa0a6" } | Not supported in any form: `<T>`, `<T extends S>`, `<?>`, generic methods and diamond `<>`. See *[Programs with generics](../RemoveGenerics.md)*. |
64+
| Generics | Java 5 (2004), [JSR 14](https://jcp.org/en/jsr/detail?id=14){target="_blank" rel="noopener"} | diamond ([JSR 334](https://jcp.org/en/jsr/detail?id=334){target="_blank" rel="noopener"}, Java 7, [§15.9.1](https://docs.oracle.com/javase/specs/jls/se21/html/jls-15.html#jls-15.9.1){target="_blank" rel="noopener"}), improved inference ([JSR 335](https://jcp.org/en/jsr/detail?id=335){target="_blank" rel="noopener"}, Java 8, [§18](https://docs.oracle.com/javase/specs/jls/se21/html/jls-18.html){target="_blank" rel="noopener"}), `var` lambda params ([JEP 323](https://openjdk.org/jeps/323){target="_blank" rel="noopener"}, Java 11) | :material-minus:{ style="color:#9aa0a6" } | Not supported in any form: `<T>`, `<T extends S>`, wildcards, generic methods and diamond `<>`. See *[Programs with generics](../RemoveGenerics.md)*. |
6465
| Enhanced `for` (for-each) | Java 5 (2004), [JSR 201](https://jcp.org/en/jsr/detail?id=201){target="_blank" rel="noopener"} | [§14.14.2](https://docs.oracle.com/javase/specs/jls/se21/html/jls-14.html#jls-14.14.2){target="_blank" rel="noopener"} (stable) | :material-check-bold:{ style="color:#2e9e44" } | Rewritten to an indexed / iterator loop. |
6566
| Autoboxing / unboxing | Java 5 (2004), [JSR 201](https://jcp.org/en/jsr/detail?id=201){target="_blank" rel="noopener"} | [§5.1.7](https://docs.oracle.com/javase/specs/jls/se21/html/jls-5.html#jls-5.1.7){target="_blank" rel="noopener"}, [§5.1.8](https://docs.oracle.com/javase/specs/jls/se21/html/jls-5.html#jls-5.1.8){target="_blank" rel="noopener"} | :material-minus:{ style="color:#9aa0a6" } | Parses, but boxing/unboxing is not modelled (method resolution assumes its absence), so reasoning would be unsound. |
6667
| Enums | Java 5 (2004), [JSR 201](https://jcp.org/en/jsr/detail?id=201){target="_blank" rel="noopener"} | [§8.9](https://docs.oracle.com/javase/specs/jls/se21/html/jls-8.html#jls-8.9){target="_blank" rel="noopener"} (stable) | ( :material-check-bold:{ style="color:#d19a00" } ) | Desugared to classes; declarations (including constant-specific bodies) load. Calculus support only partial. See also the `switch` row for the enum-label caveat. |

0 commit comments

Comments
 (0)