Skip to content

Commit c8e6b8a

Browse files
committed
share error message in WrapTpNew and fix None, Ellipsis, and NotImplemented constructors
1 parent b927e1d commit c8e6b8a

File tree

3 files changed

+8
-22
lines changed

3 files changed

+8
-22
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/BuiltinConstructors.java

Lines changed: 5 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2673,44 +2673,29 @@ Object doNative(PythonAbstractNativeObject self, Object[] varargs, PKeyword[] kw
26732673
@Builtin(name = "NotImplementedType", minNumOfPositionalArgs = 1, constructsClass = PythonBuiltinClassType.PNotImplemented, isPublic = false)
26742674
@GenerateNodeFactory
26752675
public abstract static class NotImplementedTypeNode extends PythonBuiltinNode {
2676-
protected PythonBuiltinClass getNotImplementedClass() {
2677-
return getCore().lookupType(PythonBuiltinClassType.PNotImplemented);
2678-
}
2679-
26802676
@Specialization
26812677
public PNotImplemented module(Object cls) {
2682-
if (cls != getNotImplementedClass()) {
2683-
throw raise(TypeError, ErrorMessages.OBJ_ISNT_CALLABLE, "NotImplementedType");
2684-
} else {
2685-
return PNotImplemented.NOT_IMPLEMENTED;
2686-
}
2678+
return PNotImplemented.NOT_IMPLEMENTED;
26872679
}
26882680
}
26892681

2690-
@Builtin(name = "ellipsis", takesVarArgs = true, takesVarKeywordArgs = true, constructsClass = PythonBuiltinClassType.PEllipsis, isPublic = false)
2682+
@Builtin(name = "ellipsis", minNumOfPositionalArgs = 1, constructsClass = PythonBuiltinClassType.PEllipsis, isPublic = false)
26912683
@GenerateNodeFactory
26922684
public abstract static class EllipsisTypeNode extends PythonBuiltinNode {
26932685
@SuppressWarnings("unused")
26942686
@Specialization
2695-
public PEllipsis call(Object cls, Object args, Object kwds) {
2687+
public PEllipsis call(Object cls) {
26962688
return PEllipsis.INSTANCE;
26972689
}
26982690
}
26992691

27002692
@Builtin(name = "NoneType", minNumOfPositionalArgs = 1, constructsClass = PythonBuiltinClassType.PNone, isPublic = false)
27012693
@GenerateNodeFactory
27022694
public abstract static class NoneTypeNode extends PythonBuiltinNode {
2703-
protected PythonBuiltinClass getNoneClass() {
2704-
return getCore().lookupType(PythonBuiltinClassType.PNone);
2705-
}
2706-
2695+
@SuppressWarnings("unused")
27072696
@Specialization
27082697
public PNone module(Object cls) {
2709-
if (cls != getNoneClass()) {
2710-
throw raise(TypeError, ErrorMessages.IS_NOT_SUBTYPE_OF, "NoneType.__new__", cls, "NoneType");
2711-
} else {
2712-
return PNone.NONE;
2713-
}
2698+
return PNone.NONE;
27142699
}
27152700
}
27162701

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/nodes/ErrorMessages.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,7 @@ public abstract class ErrorMessages {
294294
public static final String IS_NOT_IN_RANGE = "%s is not in range";
295295
public static final String D_IS_NOT_IN_RANGE = "%d is not in range";
296296
public static final String IS_NOT_ITERABLE = "%s is not iterable";
297-
public static final String IS_NOT_SUBTYPE_OF = "%s(%s) is not a subtype of %s";
297+
public static final String IS_NOT_SUBTYPE_OF = "%s.__new__(%N): %N is not a subtype of %s";
298298
public static final String IS_NOT_TYPE_OBJ = "%s is not a type object (%p)";
299299
public static final String ISINSTANCE_ARG_2_MUST_BE_TYPE_OR_TUPLE_OF_CLSS_WAS = "issubclass() arg 2 must be a class or tuple of classes";
300300
public static final String ISINSTANCE_ARG_2_MUST_BE_TYPE_OR_TUPLE_OF_TYPE = "isinstance() arg 2 must be a type or tuple of types (was: %s)";

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/nodes/function/builtins/WrapTpNew.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
import com.oracle.graal.python.builtins.objects.function.PArguments;
4646
import com.oracle.graal.python.builtins.objects.function.PBuiltinFunction;
4747
import com.oracle.graal.python.builtins.objects.type.TypeNodes.IsTypeNode;
48+
import com.oracle.graal.python.nodes.ErrorMessages;
4849
import com.oracle.graal.python.nodes.PRaiseNode;
4950
import com.oracle.graal.python.nodes.SpecialMethodNames;
5051
import com.oracle.graal.python.nodes.attributes.LookupAttributeInMRONode;
@@ -114,7 +115,7 @@ public Object execute(VirtualFrame frame) {
114115
state |= NOT_SUBTP_STATE;
115116
}
116117
throw getRaiseNode().raise(PythonBuiltinClassType.TypeError,
117-
"%s.__new__(%N): %N is not a subtype of %s",
118+
ErrorMessages.IS_NOT_SUBTYPE_OF,
118119
getOwner().getName(), arg0, arg0, getOwner().getName());
119120
}
120121
// CPython walks the bases and checks that the first non-heaptype base has the new that

0 commit comments

Comments
 (0)