equal
deleted
inserted
replaced
94 Type returnType = parseTypeSignature(); |
94 Type returnType = parseTypeSignature(); |
95 List<Type> throwsTypes = null; |
95 List<Type> throwsTypes = null; |
96 while (sigp < sig.length() && sig.charAt(sigp) == '^') { |
96 while (sigp < sig.length() && sig.charAt(sigp) == '^') { |
97 sigp++; |
97 sigp++; |
98 if (throwsTypes == null) |
98 if (throwsTypes == null) |
99 throwsTypes = new ArrayList<Type>(); |
99 throwsTypes = new ArrayList<>(); |
100 throwsTypes.add(parseTypeSignature()); |
100 throwsTypes.add(parseTypeSignature()); |
101 } |
101 } |
102 return new MethodType(typeParamTypes, paramTypes, returnType, throwsTypes); |
102 return new MethodType(typeParamTypes, paramTypes, returnType, throwsTypes); |
103 } else { |
103 } else { |
104 Type t = parseTypeSignature(); |
104 Type t = parseTypeSignature(); |
106 return t; |
106 return t; |
107 Type superclass = t; |
107 Type superclass = t; |
108 List<Type> superinterfaces = null; |
108 List<Type> superinterfaces = null; |
109 while (sigp < sig.length()) { |
109 while (sigp < sig.length()) { |
110 if (superinterfaces == null) |
110 if (superinterfaces == null) |
111 superinterfaces = new ArrayList<Type>(); |
111 superinterfaces = new ArrayList<>(); |
112 superinterfaces.add(parseTypeSignature()); |
112 superinterfaces.add(parseTypeSignature()); |
113 } |
113 } |
114 return new ClassSigType(typeParamTypes, superclass, superinterfaces); |
114 return new ClassSigType(typeParamTypes, superclass, superinterfaces); |
115 |
115 |
116 } |
116 } |
181 } |
181 } |
182 } |
182 } |
183 |
183 |
184 private List<Type> parseTypeSignatures(char term) { |
184 private List<Type> parseTypeSignatures(char term) { |
185 sigp++; |
185 sigp++; |
186 List<Type> types = new ArrayList<Type>(); |
186 List<Type> types = new ArrayList<>(); |
187 while (sig.charAt(sigp) != term) |
187 while (sig.charAt(sigp) != term) |
188 types.add(parseTypeSignature()); |
188 types.add(parseTypeSignature()); |
189 sigp++; |
189 sigp++; |
190 return types; |
190 return types; |
191 } |
191 } |
227 } |
227 } |
228 |
228 |
229 private List<TypeParamType> parseTypeParamTypes() { |
229 private List<TypeParamType> parseTypeParamTypes() { |
230 assert sig.charAt(sigp) == '<'; |
230 assert sig.charAt(sigp) == '<'; |
231 sigp++; |
231 sigp++; |
232 List<TypeParamType> types = new ArrayList<TypeParamType>(); |
232 List<TypeParamType> types = new ArrayList<>(); |
233 while (sig.charAt(sigp) != '>') |
233 while (sig.charAt(sigp) != '>') |
234 types.add(parseTypeParamType()); |
234 types.add(parseTypeParamType()); |
235 sigp++; |
235 sigp++; |
236 return types; |
236 return types; |
237 } |
237 } |
245 if (sig.charAt(sigp) != ':') |
245 if (sig.charAt(sigp) != ':') |
246 classBound = parseTypeSignature(); |
246 classBound = parseTypeSignature(); |
247 while (sig.charAt(sigp) == ':') { |
247 while (sig.charAt(sigp) == ':') { |
248 sigp++; |
248 sigp++; |
249 if (interfaceBounds == null) |
249 if (interfaceBounds == null) |
250 interfaceBounds = new ArrayList<Type>(); |
250 interfaceBounds = new ArrayList<>(); |
251 interfaceBounds.add(parseTypeSignature()); |
251 interfaceBounds.add(parseTypeSignature()); |
252 } |
252 } |
253 return new TypeParamType(name, classBound, interfaceBounds); |
253 return new TypeParamType(name, classBound, interfaceBounds); |
254 } |
254 } |
255 |
255 |