-
Bug
-
Resolution: Unresolved
-
P4
-
24
javac rejects an annotation that specifies more than one element-value pair for a given element. For example, javac rejects the following annotation because there is more than one element-value pair for the element `forRemoval`:
@Deprecated(forRemoval = true, forRemoval = false) class Foo {} // rejected by javac
javac does not care about the value in each element-value pair. For example, if the `forRemoval` element is specified more than once, each time with the _same_ value, then javac still rejects the annotation (as opposed to considering the duplicate element-value pair a "mistake" and ignoring it)
@Deprecated(forRemoval = true, forRemoval = true) class Bar {} // rejected by javac
JLS 9.7.1 requires an element-value pair for every non-default element, but does not actually say that specifying more than one element-value pair for a given element is illegal. The JLS should be aligned with javac.
@Deprecated(forRemoval = true, forRemoval = false) class Foo {} // rejected by javac
javac does not care about the value in each element-value pair. For example, if the `forRemoval` element is specified more than once, each time with the _same_ value, then javac still rejects the annotation (as opposed to considering the duplicate element-value pair a "mistake" and ignoring it)
@Deprecated(forRemoval = true, forRemoval = true) class Bar {} // rejected by javac
JLS 9.7.1 requires an element-value pair for every non-default element, but does not actually say that specifying more than one element-value pair for a given element is illegal. The JLS should be aligned with javac.