Mercurial > hg > graal-compiler
comparison graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/MethodCallTargetNode.java @ 18244:691e2b53dc63
Merge.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Wed, 30 Jul 2014 22:28:09 +0200 |
parents | bb2c3f570e26 4bfe1359d98a |
children | 34cb95edfc97 |
comparison
equal
deleted
inserted
replaced
18238:4221c8332c34 | 18244:691e2b53dc63 |
---|---|
111 } | 111 } |
112 | 112 |
113 // check if the type of the receiver can narrow the result | 113 // check if the type of the receiver can narrow the result |
114 ValueNode receiver = receiver(); | 114 ValueNode receiver = receiver(); |
115 ResolvedJavaType type = StampTool.typeOrNull(receiver); | 115 ResolvedJavaType type = StampTool.typeOrNull(receiver); |
116 if (type == null && invokeKind == InvokeKind.Virtual) { | |
117 // For virtual calls, we are guaranteed to receive a correct receiver type. | |
118 type = targetMethod.getDeclaringClass(); | |
119 } | |
116 if (type != null && (invoke().stateAfter() != null || invoke().stateDuring() != null)) { | 120 if (type != null && (invoke().stateAfter() != null || invoke().stateDuring() != null)) { |
117 /* | 121 /* |
118 * either the holder class is exact, or the receiver object has an exact type, or | 122 * either the holder class is exact, or the receiver object has an exact type, or |
119 * it's an array type | 123 * it's an array type |
120 */ | 124 */ |