Skip to content

Commit b27de84

Browse files
committed
Merge branch 'find-source-location' of https://github.com/numberpi/graalpython into topic/GR-12160
2 parents 975e928 + 3ecebb3 commit b27de84

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

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

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,14 @@
4141
import com.oracle.graal.python.builtins.objects.common.HashingStorage;
4242
import com.oracle.graal.python.builtins.objects.function.PArguments;
4343
import com.oracle.graal.python.builtins.objects.function.PBuiltinFunction;
44+
import com.oracle.graal.python.builtins.objects.function.PFunction;
4445
import com.oracle.graal.python.builtins.objects.function.PKeyword;
46+
import com.oracle.graal.python.builtins.objects.function.PythonCallable;
4547
import com.oracle.graal.python.builtins.objects.method.PBuiltinMethod;
48+
import com.oracle.graal.python.builtins.objects.method.PMethod;
4649
import com.oracle.graal.python.builtins.objects.module.PythonModule;
4750
import com.oracle.graal.python.builtins.objects.object.PythonObject;
51+
import com.oracle.graal.python.builtins.objects.type.PythonBuiltinClass;
4852
import com.oracle.graal.python.nodes.BuiltinNames;
4953
import com.oracle.graal.python.nodes.NodeFactory;
5054
import com.oracle.graal.python.nodes.PNode;
@@ -86,8 +90,9 @@
8690
import com.oracle.truffle.api.object.Shape;
8791
import com.oracle.truffle.api.source.Source;
8892
import com.oracle.truffle.api.source.Source.SourceBuilder;
93+
import com.oracle.truffle.api.source.SourceSection;
8994

90-
@TruffleLanguage.Registration(id = PythonLanguage.ID, name = PythonLanguage.NAME, version = PythonLanguage.VERSION, mimeType = PythonLanguage.MIME_TYPE, interactive = true, internal = false, contextPolicy = TruffleLanguage.ContextPolicy.SHARED)
95+
@TruffleLanguage.Registration(id = PythonLanguage.ID, name = PythonLanguage.NAME, version = PythonLanguage.VERSION, characterMimeTypes = PythonLanguage.MIME_TYPE, interactive = true, internal = false, contextPolicy = TruffleLanguage.ContextPolicy.SHARED)
9196
@ProvidedTags({StandardTags.CallTag.class, StandardTags.StatementTag.class, StandardTags.RootTag.class, StandardTags.TryBlockTag.class, StandardTags.ExpressionTag.class,
9297
DebuggerTags.AlwaysHalt.class})
9398
public final class PythonLanguage extends TruffleLanguage<PythonContext> {
@@ -380,6 +385,15 @@ protected Iterable<Scope> findTopScopes(PythonContext context) {
380385
return scopes;
381386
}
382387

388+
@Override
389+
protected SourceSection findSourceLocation(PythonContext context, Object value) {
390+
if (value instanceof PFunction || value instanceof PMethod) {
391+
PythonCallable callable = (PythonCallable) value;
392+
return callable.getCallTarget().getRootNode().getSourceSection();
393+
}
394+
return null;
395+
}
396+
383397
@Override
384398
protected String toString(PythonContext context, Object value) {
385399
final PythonModule builtins = context.getBuiltins();

0 commit comments

Comments
 (0)