AbstractMerge.java revision 3170:dc017a37aac5
11541Srgrimes/*
21541Srgrimes * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
31541Srgrimes * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
41541Srgrimes *
51541Srgrimes * This code is free software; you can redistribute it and/or modify it
61541Srgrimes * under the terms of the GNU General Public License version 2 only, as
71541Srgrimes * published by the Free Software Foundation.
81541Srgrimes *
91541Srgrimes * This code is distributed in the hope that it will be useful, but WITHOUT
101541Srgrimes * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
111541Srgrimes * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
121541Srgrimes * version 2 for more details (a copy is included in the LICENSE file that
131541Srgrimes * accompanied this code).
141541Srgrimes *
151541Srgrimes * You should have received a copy of the GNU General Public License version
161541Srgrimes * 2 along with this work; if not, write to the Free Software Foundation,
171541Srgrimes * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
181541Srgrimes *
191541Srgrimes * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
201541Srgrimes * or visit www.oracle.com if you need additional information or have any
211541Srgrimes * questions.
221541Srgrimes */
231541Srgrimes
241541Srgrimes@TraceResolve
251541Srgrimesclass AbstractMerge {
261541Srgrimes
271541Srgrimes    interface A {
281541Srgrimes        @Candidate(applicable=Phase.BASIC)
291541Srgrimes        java.io.Serializable m1();
3050477Speter        @Candidate(applicable=Phase.BASIC)
311541Srgrimes        java.io.Serializable m2();
321541Srgrimes        @Candidate(applicable=Phase.BASIC)
331541Srgrimes        java.io.Serializable m3();
341541Srgrimes        @Candidate(applicable=Phase.BASIC)
351541Srgrimes        java.io.Serializable m4();
361541Srgrimes        @Candidate(applicable=Phase.BASIC)
371541Srgrimes        java.io.Serializable m5();
381541Srgrimes        @Candidate(applicable=Phase.BASIC)
3932350Seivind        java.io.Serializable m6();
4041793Sluigi    }
41101090Srwatson
4232350Seivind    interface B {
431541Srgrimes        @Candidate(applicable=Phase.BASIC)
4412693Sphk        Cloneable m1();
4544078Sdfr        @Candidate(applicable=Phase.BASIC)
4612693Sphk        Cloneable m2();
471541Srgrimes        @Candidate(applicable=Phase.BASIC)
48101090Srwatson        Cloneable m3();
4912693Sphk        @Candidate(applicable=Phase.BASIC)
501541Srgrimes        Cloneable m4();
5118892Sbde        @Candidate(applicable=Phase.BASIC)
521541Srgrimes        Cloneable m5();
531541Srgrimes        @Candidate(applicable=Phase.BASIC)
541541Srgrimes        Cloneable m6();
551541Srgrimes    }
5644165Sjulian
571541Srgrimes    interface C {
588426Swollman        @Candidate(applicable=Phase.BASIC, mostSpecific=true)
5958313Slile        Object[] m1();
6071963Sjulian        @Candidate(applicable=Phase.BASIC, mostSpecific=true)
6171963Sjulian        Object[] m2();
621541Srgrimes        @Candidate(applicable=Phase.BASIC, mostSpecific=true)
631541Srgrimes        Object[] m3();
641541Srgrimes        @Candidate(applicable=Phase.BASIC, mostSpecific=true)
651541Srgrimes        Object[] m4();
661541Srgrimes        @Candidate(applicable=Phase.BASIC, mostSpecific=true)
6784931Sfjoe        Object[] m5();
6844627Sjulian        @Candidate(applicable=Phase.BASIC, mostSpecific=true)
6944627Sjulian        Object[] m6();
701541Srgrimes    }
711541Srgrimes
721541Srgrimes    interface ABC extends A, B, C { }
7344078Sdfr    interface ACB extends A, C, B { }
7412942Swollman    interface BAC extends B, A, C { }
751541Srgrimes    interface BCA extends B, C, A { }
7612693Sphk    interface CAB extends C, A, B { }
7712942Swollman    interface CBA extends C, B, A { }
7812942Swollman
7912942Swollman    {
801541Srgrimes        ABC abc = null;
8112942Swollman        abc.m1();
8212942Swollman    }
8312942Swollman
8412942Swollman    {
8512942Swollman        ACB acb = null;
8612942Swollman        acb.m2();
8712693Sphk    }
881541Srgrimes
891541Srgrimes    {
9011225Swollman        BAC bac = null;
9160938Sjake        bac.m3();
9211225Swollman    }
93110308Sorion
94110544Sorion    {
95110308Sorion        BCA bca = null;
9611225Swollman        bca.m4();
9711225Swollman    }
9812693Sphk
9960938Sjake    {
10011225Swollman        CAB cab = null;
101111888Sjlemon        cab.m5();
102120727Ssam    }
1031541Srgrimes
10412693Sphk    {
10512942Swollman        CBA cba = null;
10612942Swollman        cba.m6();
107120727Ssam    }
1083282Swollman}
10912942Swollman