1399 |
1399 |
1400 static boolean checkResolvable(boolean isOptional, Type declaringType, Binding binding) { |
1400 static boolean checkResolvable(boolean isOptional, Type declaringType, Binding binding) { |
1401 if (declaringType instanceof ResolvedJavaSymbol) { |
1401 if (declaringType instanceof ResolvedJavaSymbol) { |
1402 return checkResolvable(isOptional, ((ResolvedJavaSymbol) declaringType).getResolved(), binding); |
1402 return checkResolvable(isOptional, ((ResolvedJavaSymbol) declaringType).getResolved(), binding); |
1403 } |
1403 } |
1404 Class<?> declaringClass = InvocationPlugins.resolveType(declaringType, isOptional); |
1404 Class<?> declaringClass = resolveType(declaringType, isOptional); |
1405 if (declaringClass == null) { |
1405 if (declaringClass == null) { |
1406 return true; |
1406 return true; |
1407 } |
1407 } |
1408 if (binding.name.equals("<init>")) { |
1408 if (binding.name.equals("<init>")) { |
1409 if (resolveConstructor(declaringClass, binding) == null && !isOptional) { |
1409 if (resolveConstructor(declaringClass, binding) == null && !isOptional) { |
1410 throw new AssertionError(String.format("Constructor not found: %s%s", declaringClass.getName(), binding.argumentsDescriptor)); |
1410 throw new AssertionError(String.format("Constructor not found: %s%s", declaringClass.getName(), binding.argumentsDescriptor)); |
1411 } |
1411 } |
1412 } else { |
1412 } else { |
1413 if (resolveMethod(declaringClass, binding) == null && !isOptional) { |
1413 if (resolveMethod(declaringClass, binding) == null && !isOptional) { |
1414 throw new AssertionError(String.format("Method not found: %s.%s%s", declaringClass.getName(), binding.name, binding.argumentsDescriptor)); |
1414 throw new NoSuchMethodError(String.format("%s.%s%s", declaringClass.getName(), binding.name, binding.argumentsDescriptor)); |
1415 } |
1415 } |
1416 } |
1416 } |
1417 return true; |
1417 return true; |
1418 } |
1418 } |
1419 |
1419 |