test/tools/javac/diags/examples/InvalidDuplicateAnnotation.java

Wed, 16 Jan 2013 16:30:11 +0000

author
mcimadamore
date
Wed, 16 Jan 2013 16:30:11 +0000
changeset 1497
7aa2025bbb7b
parent 1492
df694c775e8a
child 2525
2eb010b6cb22
permissions
-rw-r--r--

8005299: Add FunctionalInterface checking to javac
Summary: Javac should check that types annotated with @FunctionalInterface are indeed functional interfaces
Reviewed-by: jjg

jfranck@1445 1 /*
jjg@1492 2 * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
jfranck@1445 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
jfranck@1445 4 *
jfranck@1445 5 * This code is free software; you can redistribute it and/or modify it
jfranck@1445 6 * under the terms of the GNU General Public License version 2 only, as
jfranck@1445 7 * published by the Free Software Foundation.
jfranck@1445 8 *
jfranck@1445 9 * This code is distributed in the hope that it will be useful, but WITHOUT
jfranck@1445 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
jfranck@1445 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
jfranck@1445 12 * version 2 for more details (a copy is included in the LICENSE file that
jfranck@1445 13 * accompanied this code).
jfranck@1445 14 *
jfranck@1445 15 * You should have received a copy of the GNU General Public License version
jfranck@1445 16 * 2 along with this work; if not, write to the Free Software Foundation,
jfranck@1445 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
jfranck@1445 18 *
jfranck@1445 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
jfranck@1445 20 * or visit www.oracle.com if you need additional information or have any
jfranck@1445 21 * questions.
jfranck@1445 22 */
jfranck@1445 23
jfranck@1445 24 // key: compiler.err.duplicate.annotation.invalid.repeated
jjg@1492 25 // key: compiler.err.invalid.repeatable.annotation.elem.nondefault
jjg@1492 26
jfranck@1445 27 // We need an almost valid containing annotation. The easiest way to get
jfranck@1445 28 // one close enough to valid is by forgetting a default.
jfranck@1445 29
jfranck@1445 30 import java.lang.annotation.*;
jfranck@1445 31
jjg@1492 32 @Repeatable(Annos.class)
jfranck@1445 33 @interface Anno { }
jfranck@1445 34
jfranck@1445 35 @interface Annos { Anno[] value(); String foo(); }
jfranck@1445 36
jfranck@1445 37 @Anno
jfranck@1445 38 @Anno
jfranck@1445 39 class InvalidDuplicateAnnotation { }

mercurial