Skip to content

Commit d290ce8

Browse files
committed
Convert LookupClassVariableNode to DSL inlinable node
1 parent 1600cec commit d290ce8

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

src/main/java/org/truffleruby/language/objects/classvariables/LookupClassVariableNode.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ Object lookupClassVariable(RubyModule module, String name,
3232
@Cached LookupClassVariableStorageNode lookupClassVariableStorageNode,
3333
@Cached InlinedConditionProfile noStorageProfile,
3434
@CachedLibrary(limit = "getDynamicObjectCacheLimit()") DynamicObjectLibrary objectLibrary) {
35-
final ClassVariableStorage classVariables = lookupClassVariableStorageNode.execute(module, name);
35+
final ClassVariableStorage classVariables = lookupClassVariableStorageNode.execute(this, module, name);
3636

3737
if (noStorageProfile.profile(this, classVariables == null)) {
3838
return null;

src/main/java/org/truffleruby/language/objects/classvariables/LookupClassVariableStorageNode.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,27 +11,32 @@
1111

1212
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
1313
import com.oracle.truffle.api.dsl.Bind;
14+
import com.oracle.truffle.api.dsl.GenerateCached;
15+
import com.oracle.truffle.api.dsl.GenerateInline;
1416
import com.oracle.truffle.api.dsl.Specialization;
1517
import com.oracle.truffle.api.library.CachedLibrary;
18+
import com.oracle.truffle.api.nodes.Node;
1619
import com.oracle.truffle.api.object.DynamicObjectLibrary;
1720
import org.truffleruby.core.module.ModuleOperations;
1821
import org.truffleruby.core.module.RubyModule;
1922
import org.truffleruby.language.RubyBaseNode;
2023

24+
@GenerateCached(false)
25+
@GenerateInline
2126
public abstract class LookupClassVariableStorageNode extends RubyBaseNode {
2227

23-
public abstract ClassVariableStorage execute(RubyModule module, String name);
28+
public abstract ClassVariableStorage execute(Node node, RubyModule module, String name);
2429

2530
@Specialization(guards = "objectLibrary.containsKey(classVariableStorage, name)")
26-
ClassVariableStorage lookupClassVariable(RubyModule module, String name,
31+
static ClassVariableStorage lookupClassVariable(RubyModule module, String name,
2732
@Bind("module.fields.getClassVariables()") ClassVariableStorage classVariableStorage,
2833
@CachedLibrary(limit = "getDynamicObjectCacheLimit()") DynamicObjectLibrary objectLibrary) {
2934
return classVariableStorage;
3035
}
3136

3237
@Specialization(replaces = "lookupClassVariable")
3338
@TruffleBoundary
34-
ClassVariableStorage uncachedLookupClassVariable(RubyModule module, String name) {
39+
static ClassVariableStorage uncachedLookupClassVariable(RubyModule module, String name) {
3540
return ModuleOperations.classVariableLookup(module, true, m -> {
3641
final ClassVariableStorage classVariables = m.fields.getClassVariables();
3742
if (classVariables.getShape().hasProperty(name)) {

0 commit comments

Comments
 (0)