11/*
2- * Copyright (c) 2021, 2024 , Oracle and/or its affiliates. All rights reserved.
2+ * Copyright (c) 2021, 2025 , Oracle and/or its affiliates. All rights reserved.
33 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44 *
55 * The Universal Permissive License (UPL), Version 1.0
@@ -1175,7 +1175,8 @@ final Object resolveReceiver(Object node) {
11751175 // slow path with parent resolve
11761176 value = resolveReceiverSlow (node );
11771177 }
1178- return receiverClass .cast (value );
1178+ assert receiverClass .isInstance (value );
1179+ return value ;
11791180 }
11801181
11811182 /**
@@ -1184,26 +1185,20 @@ final Object resolveReceiver(Object node) {
11841185 */
11851186 @ ExplodeLoop
11861187 private Object resolveReceiverSlow (Object node ) {
1187- if (receiverClass .isInstance (node )) {
1188- /*
1189- * if the receiver type does not happen to be exact, handle this here to not slow
1190- * down the fast-path.
1191- */
1192- return node ;
1193- }
11941188 Object receiver = node ;
11951189 while (receiver != null ) {
1196- assert validateForParentLookup (node , receiver );
1197- receiver = U .getObject (receiver , PARENT .offset );
11981190 if (receiverClass .isInstance (receiver )) {
1199- break ;
1191+ /*
1192+ * if the receiver type does not happen to be exact, handle this here to not
1193+ * slow down the fast-path.
1194+ */
1195+ return receiver ;
12001196 }
1197+ assert validateForParentLookup (node , receiver );
1198+ receiver = U .getObject (receiver , PARENT .offset );
12011199 }
12021200
1203- if (receiver == null ) {
1204- throw nullError (node );
1205- }
1206- return receiver ;
1201+ throw nullError (node );
12071202 }
12081203
12091204 /**
0 commit comments