langtools/test/tools/javac/generics/typevars/T6880344.java
author mcimadamore
Wed, 19 May 2010 16:41:57 +0100
changeset 5648 e8aa492874b5
child 5847 1908176fd6e3
permissions -rw-r--r--
6880344: Recursive type parameters do not compile Summary: Issue in type-variable substitution causes valid code to be rejected Reviewed-by: jjg

/*
 * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
 * CA 95054 USA or visit www.sun.com if you need additional information or
 * have any questions.
 */

/*
 * @test
 * @bug     6880344
 * @summary Recursive type parameters do not compile
 * @author  mcimadamore
 * @compile T6880344.java
 */

class T6880344 {
    static class A<X1 extends G<X1>> {
        public A<N<X1>> xyz;
    }

    static class N<X2 extends G<X2>> implements G<N<X2>> { }

    interface G<X3 extends G<X3>> { }
}