Skip to content

Commit 3ecebb3

Browse files
committed
add findSourceLocation() impl for PythonCallable
1 parent d6cd2f0 commit 3ecebb3

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/PythonLanguage.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,10 @@
3939
import com.oracle.graal.python.builtins.objects.function.PBuiltinFunction;
4040
import com.oracle.graal.python.builtins.objects.function.PKeyword;
4141
import com.oracle.graal.python.builtins.objects.method.PBuiltinMethod;
42+
import com.oracle.graal.python.builtins.objects.function.PythonCallable;
4243
import com.oracle.graal.python.builtins.objects.module.PythonModule;
4344
import com.oracle.graal.python.builtins.objects.object.PythonObject;
45+
import com.oracle.graal.python.builtins.objects.type.PythonBuiltinClass;
4446
import com.oracle.graal.python.nodes.BuiltinNames;
4547
import com.oracle.graal.python.nodes.NodeFactory;
4648
import com.oracle.graal.python.nodes.PNode;
@@ -75,6 +77,7 @@
7577
import com.oracle.truffle.api.nodes.RootNode;
7678
import com.oracle.truffle.api.source.Source;
7779
import com.oracle.truffle.api.source.Source.Builder;
80+
import com.oracle.truffle.api.source.SourceSection;
7881

7982
@TruffleLanguage.Registration(id = PythonLanguage.ID, name = PythonLanguage.NAME, version = PythonLanguage.VERSION, mimeType = PythonLanguage.MIME_TYPE, interactive = true, internal = false, contextPolicy = TruffleLanguage.ContextPolicy.REUSE)
8083
@ProvidedTags({StandardTags.CallTag.class, StandardTags.StatementTag.class, StandardTags.RootTag.class, StandardTags.TryBlockTag.class, DebuggerTags.AlwaysHalt.class})
@@ -350,6 +353,17 @@ protected Iterable<Scope> findTopScopes(PythonContext context) {
350353
return scopes;
351354
}
352355

356+
@Override
357+
protected SourceSection findSourceLocation(PythonContext context, Object value) {
358+
if (value instanceof PythonCallable) {
359+
PythonCallable callable = (PythonCallable) value;
360+
if (!(value instanceof PythonBuiltinClass)) {
361+
return callable.getCallTarget().getRootNode().getSourceSection();
362+
}
363+
}
364+
return null;
365+
}
366+
353367
@Override
354368
protected String toString(PythonContext context, Object value) {
355369
final PythonModule builtins = context.getBuiltins();

0 commit comments

Comments
 (0)