blob: 412dcf5c7d38be7aa2ac8b87d6e326025aaff73e [file] [log] [blame]
// ASM: a very small and fast Java bytecode manipulation framework
// Copyright (c) 2000-2011 INRIA, France Telecom
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions
// are met:
// 1. Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// 2. Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions and the following disclaimer in the
// documentation and/or other materials provided with the distribution.
// 3. Neither the name of the copyright holders nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
// THE POSSIBILITY OF SUCH DAMAGE.
package jdk8;
import annotations.ICA;
import annotations.IFA;
import annotations.IMA;
import annotations.IPA;
import annotations.ITA;
import annotations.ITPA;
import annotations.ITUA;
import annotations.IVA;
import annotations.VCA;
import annotations.VFA;
import annotations.VMA;
import annotations.VPA;
import annotations.VTA;
import annotations.VTPA;
import annotations.VTUA;
import annotations.VVA;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.concurrent.Callable;
import java.util.concurrent.Future;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Class which, compiled with the JDK 1.8.0, produces the new class file structures from that
* version (compared to JDK 1.3.0). Must be compiled with "javac -g -parameters".
*/
@VTA(v = 0)
@ITA(v = 1)
public abstract class AllStructures<
@VTPA(v = 2) @ITPA(v = 3) U0,
@VTPA(v = 4) @ITPA(v = 5) U1 extends @VTUA(v = 6) @ITUA(v = 7) List<U0>,
@VTPA(v = 8) @ITPA(v = 9)
U2 extends @VTUA(v = 10) @ITUA(v = 11) Collection<@VTUA(v = 12) @ITUA(v = 13) U0>>
extends @VTUA(v = 14) @ITUA(v = 15) HashMap<
@VTUA(v = 16) @ITUA(v = 17) U0, @VTUA(v = 18) @ITUA(v = 19) U1>
implements @VTUA(v = 20) @ITUA(v = 21) Callable<@VTUA(v = 22) @ITUA(v = 23) U0>,
@VTUA(v = 24) @ITUA(v = 25) Future<@VTUA(v = 26) @ITUA(v = 27) U1> {
@VFA(v = 28)
@IFA(v = 29)
public HashMap<@VTUA(v = 30) @ITUA(v = 31) U0, @VTUA(v = 32) @ITUA(v = 33) U1> f;
@VCA(v = 34)
@ICA(v = 35)
public AllStructures() {}
@VMA(v = 36)
@IMA(v = 37)
public <
@VTPA(v = 38) @ITPA(v = 39) V0 extends @VTUA(v = 40) @ITUA(v = 41) U0,
@VTUA(v = 42) @ITUA(v = 43) V1 extends @VTUA(v = 44) @ITUA(v = 45) U1>
@VTUA(v = 46) @ITUA(v = 47)
Map<@VTUA(v = 48) @ITUA(v = 49) ? extends V0, @VTUA(v = 50) @ITUA(v = 51) ? extends V1> m(
@VPA(v = 52) @IPA(v = 53) V0 p0,
@VPA(v = 54) @IPA(v = 55) V1 p1,
@VPA(v = 56) @IPA(v = 57)
Map<
@VTUA(v = 58) @ITUA(v = 59) ? extends V0, @VTUA(v = 60) @ITUA(v = 61)
? extends V1>
p2)
throws @VTUA(v = 62) @ITUA(v = 63) IllegalStateException, @VTUA(v = 64) @ITUA(v = 65)
IllegalArgumentException {
@VVA(v = 66)
@IVA(v = 67)
V1 l1 = p1;
@VVA(v = 68)
@IVA(v = 69)
Map<@VTUA(v = 70) @ITUA(v = 71) ? extends V0, @VTUA(v = 72) @ITUA(v = 73) ? extends V1> l2 = p2;
@VVA(v = 74)
@IVA(v = 75)
ArrayList l3 = (@VTUA(v = 76) @ITUA(v = 77) ArrayList) l1;
try {
m(p0, p1, p2);
} catch (@VTUA(v = 78) @ITUA(v = 79)
IllegalStateException
| @VTUA(v = 80) @ITUA(v = 81) IllegalArgumentException e1) {
// empty catch block
}
if (l2 instanceof @VTUA(v = 82) @ITUA(v = 83) HashMap) {
return l2;
}
AllStructures.<@VTUA(v = 84) V0, @ITUA(v = 85) V1>m();
return new @VTUA(v = 86) @ITUA(v = 87) HashMap<@VTUA(v = 88) V0, @ITUA(v = 89) V1>();
}
private static <U, V> void m() {}
private double g;
private double n() {
return g;
}
private Runnable anonymousInnerClass() throws Exception {
return new Runnable() {
public void run() {
@VTUA(v = 0)
@ITUA(v = 1)
double f = new InnerClass(g + n()).f;
new InnerClass(f);
}
};
}
private class InnerClass {
@VTUA(v = 0)
@ITUA(v = 1)
private final double f;
private InnerClass(double f) {
this.f = f;
}
}
}