Skip to content

Commit

Permalink
[GR-17457] Use the new Env#getLanguageInfo() to get a foreign object …
Browse files Browse the repository at this point in the history
…language's name

PullRequest: truffleruby/4365
  • Loading branch information
eregon committed Sep 25, 2024
2 parents e449440 + 327b698 commit 53c38f3
Showing 1 changed file with 7 additions and 8 deletions.
15 changes: 7 additions & 8 deletions src/main/java/org/truffleruby/interop/InteropNodes.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import com.oracle.truffle.api.profiles.InlinedBranchProfile;
import com.oracle.truffle.api.source.SourceSection;
import com.oracle.truffle.api.strings.TruffleString;
import org.truffleruby.RubyContext;
import org.truffleruby.annotations.CoreMethod;
import org.truffleruby.annotations.Split;
import org.truffleruby.builtins.CoreMethodArrayArgumentsNode;
Expand Down Expand Up @@ -1588,23 +1589,21 @@ static Object getLanguage(Object receiver,
return nil;
}

final Class<? extends TruffleLanguage<?>> language;
final Class<? extends TruffleLanguage<?>> languageClass;
try {
language = receivers.getLanguage(receiver);
languageClass = receivers.getLanguage(receiver);
} catch (UnsupportedMessageException e) {
return nil;
}

final String name = languageClassToLanguageName(language);
final String name = languageClassToLanguageName(getContext(node), languageClass);
return fromJavaStringNode.executeFromJavaString(node, name);
}

@TruffleBoundary
private static String languageClassToLanguageName(Class<? extends TruffleLanguage<?>> language) {
String name = language.getSimpleName();
if (name.endsWith("Language")) {
name = name.substring(0, name.length() - "Language".length());
}
private static String languageClassToLanguageName(RubyContext context,
Class<? extends TruffleLanguage<?>> languageClass) {
String name = context.getEnv().getLanguageInfo(languageClass).getName();
if (name.equals("Host")) {
name = "Java";
}
Expand Down

0 comments on commit 53c38f3

Please sign in to comment.