Skip to content

Commit 6cd19c0

Browse files
committed
Consider SytaxError subclasses as syntax errors
1 parent 11f6d2c commit 6cd19c0

File tree

1 file changed

+7
-1
lines changed
  • graalpython/com.oracle.graal.python/src/com/oracle/graal/python/runtime/exception

1 file changed

+7
-1
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/runtime/exception/PException.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
import com.oracle.graal.python.builtins.objects.object.PythonObjectLibrary;
4848
import com.oracle.graal.python.builtins.objects.traceback.LazyTraceback;
4949
import com.oracle.graal.python.builtins.objects.traceback.PTraceback;
50+
import com.oracle.graal.python.nodes.classes.IsSubtypeNode;
5051
import com.oracle.graal.python.nodes.object.IsBuiltinClassProfile;
5152
import com.oracle.truffle.api.CallTarget;
5253
import com.oracle.truffle.api.CompilerAsserts;
@@ -180,7 +181,12 @@ public int getStackTraceElementLimit() {
180181

181182
@Override
182183
public boolean isSyntaxError() {
183-
return pythonException != null && IsBuiltinClassProfile.profileClassSlowPath(PythonObjectLibrary.getUncached().getLazyPythonClass(pythonException), PythonBuiltinClassType.SyntaxError);
184+
if (pythonException == null) {
185+
return false;
186+
}
187+
Object clazz = PythonObjectLibrary.getUncached().getLazyPythonClass(pythonException);
188+
return IsBuiltinClassProfile.profileClassSlowPath(clazz, PythonBuiltinClassType.SyntaxError) ||
189+
IsSubtypeNode.getUncached().execute(clazz, PythonBuiltinClassType.SyntaxError);
184190
}
185191

186192
public void setIncompleteSource(boolean val) {

0 commit comments

Comments
 (0)