Receivers.java revision 4ae81f26445bc9397bd3e1edb062e0388ed82a6f
167ef4360e4d0b2c90124f1185357989682d62359Eric Spishakpackage annotator.tests; 267ef4360e4d0b2c90124f1185357989682d62359Eric Spishak 34593a381f85509ebb89248dc954f2caf92cee1e4Dan Brownimport java.io.Closeable; 44593a381f85509ebb89248dc954f2caf92cee1e4Dan Brownimport java.io.IOException; 54593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown 667ef4360e4d0b2c90124f1185357989682d62359Eric Spishakpublic class Receivers { 767ef4360e4d0b2c90124f1185357989682d62359Eric Spishak public void m() {} 867ef4360e4d0b2c90124f1185357989682d62359Eric Spishak 9f3b74a417d512c40e1ffcaa767896ef6ba11da98Eric Spishak public void spaces() {} 10f3b74a417d512c40e1ffcaa767896ef6ba11da98Eric Spishak 1167ef4360e4d0b2c90124f1185357989682d62359Eric Spishak public void m(int i) {} 1267ef4360e4d0b2c90124f1185357989682d62359Eric Spishak 13f3b74a417d512c40e1ffcaa767896ef6ba11da98Eric Spishak public void spaces(int i) {} 14f3b74a417d512c40e1ffcaa767896ef6ba11da98Eric Spishak 1567ef4360e4d0b2c90124f1185357989682d62359Eric Spishak public void m(@Anno() String s) {} 1667ef4360e4d0b2c90124f1185357989682d62359Eric Spishak} 1767ef4360e4d0b2c90124f1185357989682d62359Eric Spishak 1867ef4360e4d0b2c90124f1185357989682d62359Eric Spishakclass Receivers2 { 1967ef4360e4d0b2c90124f1185357989682d62359Eric Spishak public void m(Receivers2 this) {} 2067ef4360e4d0b2c90124f1185357989682d62359Eric Spishak 21f3b74a417d512c40e1ffcaa767896ef6ba11da98Eric Spishak public void spaces(Receivers2 this) {} 22f3b74a417d512c40e1ffcaa767896ef6ba11da98Eric Spishak 2367ef4360e4d0b2c90124f1185357989682d62359Eric Spishak public void m(Receivers2 this, int i) {} 24f3b74a417d512c40e1ffcaa767896ef6ba11da98Eric Spishak 25f3b74a417d512c40e1ffcaa767896ef6ba11da98Eric Spishak public void spaces(Receivers2 this, int i) {} 2667ef4360e4d0b2c90124f1185357989682d62359Eric Spishak} 2767ef4360e4d0b2c90124f1185357989682d62359Eric Spishak 2867ef4360e4d0b2c90124f1185357989682d62359Eric Spishakclass Receivers3<K, V> { 2967ef4360e4d0b2c90124f1185357989682d62359Eric Spishak public void m() {} 3067ef4360e4d0b2c90124f1185357989682d62359Eric Spishak 3167ef4360e4d0b2c90124f1185357989682d62359Eric Spishak public void m(int i) {} 3267ef4360e4d0b2c90124f1185357989682d62359Eric Spishak} 3367ef4360e4d0b2c90124f1185357989682d62359Eric Spishak 3467ef4360e4d0b2c90124f1185357989682d62359Eric Spishakclass Receivers4<K, V> { 3567ef4360e4d0b2c90124f1185357989682d62359Eric Spishak public void m(Receivers4<K, V> this) {} 3667ef4360e4d0b2c90124f1185357989682d62359Eric Spishak 3767ef4360e4d0b2c90124f1185357989682d62359Eric Spishak public void m(Receivers4<K, V> this, int i) {} 3867ef4360e4d0b2c90124f1185357989682d62359Eric Spishak} 3967ef4360e4d0b2c90124f1185357989682d62359Eric Spishak 4067ef4360e4d0b2c90124f1185357989682d62359Eric Spishakinterface Receivers5 { 4167ef4360e4d0b2c90124f1185357989682d62359Eric Spishak public void m(); 4267ef4360e4d0b2c90124f1185357989682d62359Eric Spishak} 4367ef4360e4d0b2c90124f1185357989682d62359Eric Spishak 4467ef4360e4d0b2c90124f1185357989682d62359Eric Spishakenum Receivers6 { 4567ef4360e4d0b2c90124f1185357989682d62359Eric Spishak TEST; 4667ef4360e4d0b2c90124f1185357989682d62359Eric Spishak public void m() {} 4767ef4360e4d0b2c90124f1185357989682d62359Eric Spishak} 4867ef4360e4d0b2c90124f1185357989682d62359Eric Spishak 49b5c156e0b62f1f601fc1e696c0d7e8fe733f1e94Eric Spishakclass Receivers7<K extends Object, V> { 50e5c299b5a604d888f312414745090254be34d387Eric Spishak public void m() {} 51e5c299b5a604d888f312414745090254be34d387Eric Spishak} 52e5c299b5a604d888f312414745090254be34d387Eric Spishak 53e5c299b5a604d888f312414745090254be34d387Eric Spishakclass Receivers8<K extends Object> { 54e5c299b5a604d888f312414745090254be34d387Eric Spishak public void m(Receivers8<K> this) {} 55e5c299b5a604d888f312414745090254be34d387Eric Spishak} 56e5c299b5a604d888f312414745090254be34d387Eric Spishak 5701aec963d4771995d97d807dbd42aff4adff0f62Eric Spishakclass Receivers9 { 5801aec963d4771995d97d807dbd42aff4adff0f62Eric Spishak public void m() {} 5901aec963d4771995d97d807dbd42aff4adff0f62Eric Spishak} 6001aec963d4771995d97d807dbd42aff4adff0f62Eric Spishak 61e1ef3cf6916e0f27b72a542d49699edde76583d6Eric Spishakclass Receivers10<K, V> { 62e1ef3cf6916e0f27b72a542d49699edde76583d6Eric Spishak public void m(Receivers10<K, V> this) {} 63e1ef3cf6916e0f27b72a542d49699edde76583d6Eric Spishak 64e1ef3cf6916e0f27b72a542d49699edde76583d6Eric Spishak public void m(Receivers10<K, V> this, Receivers10<K, V> other) {} 65e1ef3cf6916e0f27b72a542d49699edde76583d6Eric Spishak} 66e1ef3cf6916e0f27b72a542d49699edde76583d6Eric Spishak 6767ef4360e4d0b2c90124f1185357989682d62359Eric Spishak@interface Anno {} 684593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown 694593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown// Test receiver insertion on inner class's default constructor. 704593a381f85509ebb89248dc954f2caf92cee1e4Dan Brownfinal class ScriptBasedMapping { 714593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown private final class RawScriptBasedMapping { 724593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown } 734593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown} 744593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown 754593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown// Test receiver insertion before first parameter annotation. 764593a381f85509ebb89248dc954f2caf92cee1e4Dan Browninterface GenericInterface<T extends Object> { 774593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown public T map(T toMap); 784593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown} 794593a381f85509ebb89248dc954f2caf92cee1e4Dan Brownclass GenericArray<Z extends Object> implements GenericInterface<String []> { 804593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown private Z z; 814593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown public void setZ(Z z) { 824593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown this.z = z; 834593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown } 844593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown public String [] map(String [] toMap) { 854593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown return toMap; 864593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown } 874593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown} 884593a381f85509ebb89248dc954f2caf92cee1e4Dan Brownclass GenericFields { 894593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown private GenericArray<String> genArray; 904593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown} 914593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown 924593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown// Test inner receiver insertion before first parameter annotation. 934593a381f85509ebb89248dc954f2caf92cee1e4Dan Brownclass Outer<T, S> { 944593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown class Inner<T2 extends T> { 954593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown private S s; 964593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown private T t; 974ae81f26445bc9397bd3e1edb062e0388ed82a6fMichael Ernst 984593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown protected void initialize(S s, T t) { 994593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown this.s = s; 1004593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown this.t = t; 1014593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown } 1024ae81f26445bc9397bd3e1edb062e0388ed82a6fMichael Ernst 1034593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown public Inner(S s, T t) { 1044593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown initialize(s, t); 1054593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown } 1064593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown } 1074593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown} 1084593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown 1094593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown// Test that parameters inside an anonymous class get annotated. 1104593a381f85509ebb89248dc954f2caf92cee1e4Dan Browninterface Interface { 1114593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown String get(String param); 1124593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown} 1134593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown 1144593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown// Test for infinite loop bug. 1154593a381f85509ebb89248dc954f2caf92cee1e4Dan Brownclass Closer<T> implements Closeable { 1164593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown private final Closeable proxyProvider = System.out; 1174593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown 1184593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown @Override 1194593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown public void close() throws IOException { 1204593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown proxyProvider.close(); 1214593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown } 1224593a381f85509ebb89248dc954f2caf92cee1e4Dan Brown} 123