hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl.java
equal
deleted
inserted
replaced
391 public JavaKind getJavaKind() { |
391 public JavaKind getJavaKind() { |
392 return JavaKind.Object; |
392 return JavaKind.Object; |
393 } |
393 } |
394 |
394 |
395 @Override |
395 @Override |
396 public ResolvedJavaMethod resolveConcreteMethod(ResolvedJavaMethod method, ResolvedJavaType callerType) { |
|
397 ResolvedJavaMethod resolvedMethod = resolveMethod(method, callerType); |
|
398 if (resolvedMethod == null || resolvedMethod.isAbstract()) { |
|
399 return null; |
|
400 } |
|
401 return resolvedMethod; |
|
402 } |
|
403 |
|
404 @Override |
|
405 public ResolvedJavaMethod resolveMethod(ResolvedJavaMethod method, ResolvedJavaType callerType) { |
396 public ResolvedJavaMethod resolveMethod(ResolvedJavaMethod method, ResolvedJavaType callerType) { |
406 assert !callerType.isArray(); |
397 assert !callerType.isArray(); |
|
398 if (isInterface()) { |
|
399 // Methods can only be resolved against concrete types |
|
400 return null; |
|
401 } |
407 if (method.isConcrete() && method.getDeclaringClass().equals(this) && method.isPublic()) { |
402 if (method.isConcrete() && method.getDeclaringClass().equals(this) && method.isPublic()) { |
408 return method; |
403 return method; |
409 } |
404 } |
410 if (!method.getDeclaringClass().isAssignableFrom(this)) { |
405 if (!method.getDeclaringClass().isAssignableFrom(this)) { |
411 return null; |
406 return null; |