Skip to content

Commit f051aa6

Browse files
committed
Fix mappingproxy.get
1 parent 2098456 commit f051aa6

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

graalpython/com.oracle.graal.python.test/src/tests/unittest_tags/test_types.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,11 @@
2222
*graalpython.lib-python.3.test.test_types.CoroutineTests.test_non_gen_values
2323
*graalpython.lib-python.3.test.test_types.CoroutineTests.test_wrapper_object
2424
*graalpython.lib-python.3.test.test_types.CoroutineTests.test_wrong_args
25+
*graalpython.lib-python.3.test.test_types.MappingProxyTests.test_chainmap
2526
*graalpython.lib-python.3.test.test_types.MappingProxyTests.test_constructor
2627
*graalpython.lib-python.3.test.test_types.MappingProxyTests.test_contains
2728
*graalpython.lib-python.3.test.test_types.MappingProxyTests.test_copy
29+
*graalpython.lib-python.3.test.test_types.MappingProxyTests.test_customdict
2830
*graalpython.lib-python.3.test.test_types.MappingProxyTests.test_get
2931
*graalpython.lib-python.3.test.test_types.MappingProxyTests.test_iterators
3032
*graalpython.lib-python.3.test.test_types.MappingProxyTests.test_len

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/mappingproxy/MappingproxyBuiltins.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,13 @@ public Object values(VirtualFrame frame, PMappingproxy self,
125125
@Builtin(name = "get", minNumOfPositionalArgs = 2, maxNumOfPositionalArgs = 3)
126126
@GenerateNodeFactory
127127
public abstract static class GetNode extends PythonBuiltinNode {
128-
@Specialization(limit = "1")
128+
@Specialization(guards = "isNoValue(defaultValue)", limit = "1")
129+
public Object get(VirtualFrame frame, PMappingproxy self, Object key, @SuppressWarnings("unused") PNone defaultValue,
130+
@CachedLibrary("self.getMapping()") PythonObjectLibrary lib) {
131+
return lib.lookupAndCallRegularMethod(self.getMapping(), frame, "get", key);
132+
}
133+
134+
@Specialization(guards = "!isNoValue(defaultValue)", limit = "1")
129135
public Object get(VirtualFrame frame, PMappingproxy self, Object key, Object defaultValue,
130136
@CachedLibrary("self.getMapping()") PythonObjectLibrary lib) {
131137
return lib.lookupAndCallRegularMethod(self.getMapping(), frame, "get", key, defaultValue);

0 commit comments

Comments
 (0)