Skip to content

Commit f5fb844

Browse files
committed
ignore module name if it can't be cast for __repr__
1 parent 0a9d8ff commit f5fb844

File tree

1 file changed

+9
-2
lines changed
  • graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/type

1 file changed

+9
-2
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/type/TypeBuiltins.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,6 @@
115115
import com.oracle.graal.python.builtins.objects.set.PSet;
116116
import com.oracle.graal.python.builtins.objects.str.StringUtils.SimpleTruffleStringFormatNode;
117117
import com.oracle.graal.python.builtins.objects.tuple.PTuple;
118-
import com.oracle.graal.python.builtins.objects.type.TypeBuiltinsFactory.CallNodeFactory;
119118
import com.oracle.graal.python.builtins.objects.type.TypeNodes.CheckCompatibleForAssigmentNode;
120119
import com.oracle.graal.python.builtins.objects.type.TypeNodes.GetBaseClassNode;
121120
import com.oracle.graal.python.builtins.objects.type.TypeNodes.GetBestBaseClassNode;
@@ -126,6 +125,7 @@
126125
import com.oracle.graal.python.builtins.objects.type.TypeNodes.InlinedIsSameTypeNode;
127126
import com.oracle.graal.python.builtins.objects.type.TypeNodes.IsSameTypeNode;
128127
import com.oracle.graal.python.builtins.objects.type.TypeNodes.IsTypeNode;
128+
import com.oracle.graal.python.builtins.objects.type.TypeBuiltinsFactory.CallNodeFactory;
129129
import com.oracle.graal.python.builtins.objects.type.TypeNodesFactory.IsSameTypeNodeGen;
130130
import com.oracle.graal.python.builtins.objects.types.GenericTypeNodes;
131131
import com.oracle.graal.python.lib.PyObjectIsTrueNode;
@@ -244,7 +244,14 @@ static TruffleString repr(VirtualFrame frame, Object self,
244244
@Cached SimpleTruffleStringFormatNode simpleTruffleStringFormatNode) {
245245
Object moduleNameObj = readModuleNode.executeObject(frame, self);
246246
Object qualNameObj = readQualNameNode.executeObject(frame, self);
247-
TruffleString moduleName = moduleNameObj != PNone.NO_VALUE ? castToStringNode.execute(moduleNameObj) : null;
247+
TruffleString moduleName = null;
248+
if (moduleNameObj != PNone.NO_VALUE) {
249+
try {
250+
moduleName = castToStringNode.execute(moduleNameObj);
251+
} catch (CannotCastException e) {
252+
// ignore
253+
}
254+
}
248255
if (moduleName == null || equalNode.execute(moduleName, T_BUILTINS, TS_ENCODING)) {
249256
return simpleTruffleStringFormatNode.format("<class '%s'>", castToStringNode.execute(qualNameObj));
250257
}

0 commit comments

Comments
 (0)