Skip to content

Commit c0440aa

Browse files
committed
hidden keys are always on the object
1 parent 1972bbb commit c0440aa

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/nodes/attributes/ReadAttributeFromObjectNode.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ protected Object readFromDynamicStorageCached(PythonObject object, Object key,
8484
}
8585

8686
@Specialization(guards = {
87-
"isDictUnsetOrSameAsStorage(object)"
87+
"isDictUnsetOrSameAsStorage(object) || isHiddenKey(key)"
8888
}, replaces = "readFromDynamicStorageCached")
8989
protected Object readFromDynamicStorage(PythonObject object, Object key,
9090
@Cached("create()") ReadAttributeFromDynamicObjectNode readAttributeFromDynamicObjectNode) {
@@ -94,7 +94,8 @@ protected Object readFromDynamicStorage(PythonObject object, Object key,
9494
// read from the Dict
9595
@Specialization(guards = {
9696
"object == cachedObject",
97-
"!dictUnsetOrSameAsStorageAssumption.isValid()"
97+
"!dictUnsetOrSameAsStorageAssumption.isValid()",
98+
"!isHiddenKey(key)"
9899
}, assumptions = {
99100
"singleContextAssumption"
100101
})
@@ -112,7 +113,8 @@ protected Object readFromDictCached(PythonObject object, Object key,
112113
}
113114

114115
@Specialization(guards = {
115-
"!isDictUnsetOrSameAsStorage(object)"
116+
"!isDictUnsetOrSameAsStorage(object)",
117+
"!isHiddenKey(key)"
116118
}, replaces = "readFromDictCached")
117119
protected Object readFromDict(PythonObject object, Object key,
118120
@Cached("create()") HashingStorageNodes.GetItemNode getItemNode) {

0 commit comments

Comments
 (0)