Skip to content

Commit 416901b

Browse files
committed
Cleanup SetVisibilityNode and SetMethodVisibilityNode
1 parent 835110a commit 416901b

File tree

2 files changed

+32
-38
lines changed

2 files changed

+32
-38
lines changed

src/main/java/org/truffleruby/cext/CExtNodes.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,7 @@
4040
import org.truffleruby.core.klass.RubyClass;
4141
import org.truffleruby.core.module.MethodLookupResult;
4242
import org.truffleruby.core.module.ModuleNodes.ConstSetUncheckedNode;
43-
import org.truffleruby.core.module.ModuleNodes.SetVisibilityNode;
44-
import org.truffleruby.core.module.ModuleNodesFactory.SetVisibilityNodeGen;
43+
import org.truffleruby.core.module.ModuleNodes.SetMethodVisibilityNode;
4544
import org.truffleruby.core.module.ModuleOperations;
4645
import org.truffleruby.core.module.RubyModule;
4746
import org.truffleruby.core.mutex.MutexOperations;
@@ -717,11 +716,12 @@ protected Object rbConstSet(RubyModule module, String name, Object value,
717716
@CoreMethod(names = "cext_module_function", onSingleton = true, required = 2)
718717
public abstract static class CextModuleFunctionNode extends CoreMethodArrayArgumentsNode {
719718

720-
@Child SetVisibilityNode setVisibilityNode = SetVisibilityNodeGen.create(Visibility.MODULE_FUNCTION);
719+
@Child SetMethodVisibilityNode setMethodVisibilityNode = SetMethodVisibilityNode.create();
721720

722721
@Specialization
723-
protected RubyModule cextModuleFunction(VirtualFrame frame, RubyModule module, RubySymbol name) {
724-
return setVisibilityNode.executeSetVisibility(frame, module, new Object[]{ name });
722+
protected RubyModule cextModuleFunction(RubyModule module, RubySymbol name) {
723+
setMethodVisibilityNode.execute(module, name, Visibility.MODULE_FUNCTION);
724+
return module;
725725
}
726726

727727
}

src/main/java/org/truffleruby/core/module/ModuleNodes.java

Lines changed: 27 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1555,7 +1555,7 @@ protected boolean isMethodDefined(RubyModule module, String name, boolean inheri
15551555
@CoreMethod(names = "module_function", rest = true, visibility = Visibility.PRIVATE)
15561556
public abstract static class ModuleFunctionNode extends CoreMethodArrayArgumentsNode {
15571557

1558-
@Child private SetVisibilityNode setVisibilityNode = SetVisibilityNodeGen.create(Visibility.MODULE_FUNCTION);
1558+
@Child private SetVisibilityNode setVisibilityNode = SetVisibilityNode.create();
15591559

15601560
@Specialization
15611561
protected RubyModule moduleFunction(VirtualFrame frame, RubyModule module, Object[] names,
@@ -1567,7 +1567,7 @@ protected RubyModule moduleFunction(VirtualFrame frame, RubyModule module, Objec
15671567
coreExceptions().typeError("module_function must be called for modules", this));
15681568
}
15691569

1570-
return setVisibilityNode.executeSetVisibility(frame, module, names);
1570+
return setVisibilityNode.execute(frame, module, names, Visibility.MODULE_FUNCTION);
15711571
}
15721572

15731573
}
@@ -1608,13 +1608,13 @@ protected RubyArray nesting() {
16081608
@CoreMethod(names = "public", rest = true, visibility = Visibility.PRIVATE)
16091609
public abstract static class PublicNode extends CoreMethodArrayArgumentsNode {
16101610

1611-
@Child private SetVisibilityNode setVisibilityNode = SetVisibilityNodeGen.create(Visibility.PUBLIC);
1611+
@Child private SetVisibilityNode setVisibilityNode = SetVisibilityNode.create();
16121612

16131613
public abstract RubyModule executePublic(VirtualFrame frame, RubyModule module, Object[] args);
16141614

16151615
@Specialization
16161616
protected RubyModule doPublic(VirtualFrame frame, RubyModule module, Object[] names) {
1617-
return setVisibilityNode.executeSetVisibility(frame, module, names);
1617+
return setVisibilityNode.execute(frame, module, names, Visibility.PUBLIC);
16181618
}
16191619

16201620
}
@@ -1623,15 +1623,14 @@ protected RubyModule doPublic(VirtualFrame frame, RubyModule module, Object[] na
16231623
public abstract static class PublicClassMethodNode extends CoreMethodArrayArgumentsNode {
16241624

16251625
@Child private SingletonClassNode singletonClassNode = SingletonClassNode.create();
1626-
@Child private SetMethodVisibilityNode setMethodVisibilityNode = SetMethodVisibilityNodeGen
1627-
.create(Visibility.PUBLIC);
1626+
@Child private SetMethodVisibilityNode setMethodVisibilityNode = SetMethodVisibilityNode.create();
16281627

16291628
@Specialization
1630-
protected RubyModule publicClassMethod(VirtualFrame frame, RubyModule module, Object[] names) {
1629+
protected RubyModule publicClassMethod(RubyModule module, Object[] names) {
16311630
final RubyClass singletonClass = singletonClassNode.executeSingletonClass(module);
16321631

16331632
for (Object name : names) {
1634-
setMethodVisibilityNode.executeSetMethodVisibility(frame, singletonClass, name);
1633+
setMethodVisibilityNode.execute(singletonClass, name, Visibility.PUBLIC);
16351634
}
16361635

16371636
return module;
@@ -1641,13 +1640,13 @@ protected RubyModule publicClassMethod(VirtualFrame frame, RubyModule module, Ob
16411640
@CoreMethod(names = "private", rest = true, visibility = Visibility.PRIVATE)
16421641
public abstract static class PrivateNode extends CoreMethodArrayArgumentsNode {
16431642

1644-
@Child private SetVisibilityNode setVisibilityNode = SetVisibilityNodeGen.create(Visibility.PRIVATE);
1643+
@Child private SetVisibilityNode setVisibilityNode = SetVisibilityNode.create();
16451644

16461645
public abstract RubyModule executePrivate(VirtualFrame frame, RubyModule module, Object[] args);
16471646

16481647
@Specialization
16491648
protected RubyModule doPrivate(VirtualFrame frame, RubyModule module, Object[] names) {
1650-
return setVisibilityNode.executeSetVisibility(frame, module, names);
1649+
return setVisibilityNode.execute(frame, module, names, Visibility.PRIVATE);
16511650
}
16521651

16531652
}
@@ -1673,15 +1672,14 @@ protected Object prependFeatures(RubyModule features, RubyModule target,
16731672
public abstract static class PrivateClassMethodNode extends CoreMethodArrayArgumentsNode {
16741673

16751674
@Child private SingletonClassNode singletonClassNode = SingletonClassNode.create();
1676-
@Child private SetMethodVisibilityNode setMethodVisibilityNode = SetMethodVisibilityNodeGen
1677-
.create(Visibility.PRIVATE);
1675+
@Child private SetMethodVisibilityNode setMethodVisibilityNode = SetMethodVisibilityNode.create();
16781676

16791677
@Specialization
16801678
protected RubyModule privateClassMethod(VirtualFrame frame, RubyModule module, Object[] names) {
16811679
final RubyClass singletonClass = singletonClassNode.executeSingletonClass(module);
16821680

16831681
for (Object name : names) {
1684-
setMethodVisibilityNode.executeSetMethodVisibility(frame, singletonClass, name);
1682+
setMethodVisibilityNode.execute(singletonClass, name, Visibility.PRIVATE);
16851683
}
16861684

16871685
return module;
@@ -1941,11 +1939,11 @@ protected RubyModule publicConstant(RubyModule module, Object[] args) {
19411939
@CoreMethod(names = "protected", rest = true, visibility = Visibility.PRIVATE)
19421940
public abstract static class ProtectedNode extends CoreMethodArrayArgumentsNode {
19431941

1944-
@Child private SetVisibilityNode setVisibilityNode = SetVisibilityNodeGen.create(Visibility.PROTECTED);
1942+
@Child private SetVisibilityNode setVisibilityNode = SetVisibilityNode.create();
19451943

19461944
@Specialization
19471945
protected RubyModule doProtected(VirtualFrame frame, RubyModule module, Object[] names) {
1948-
return setVisibilityNode.executeSetVisibility(frame, module, names);
1946+
return setVisibilityNode.execute(frame, module, names, Visibility.PROTECTED);
19491947
}
19501948

19511949
}
@@ -2113,25 +2111,23 @@ protected RubyArray usedRefinements() {
21132111

21142112
public abstract static class SetVisibilityNode extends RubyContextNode {
21152113

2116-
private final Visibility visibility;
2117-
2118-
@Child private SetMethodVisibilityNode setMethodVisibilityNode;
2119-
2120-
public SetVisibilityNode(Visibility visibility) {
2121-
this.visibility = visibility;
2122-
setMethodVisibilityNode = SetMethodVisibilityNodeGen.create(visibility);
2114+
public static SetVisibilityNode create() {
2115+
return SetVisibilityNodeGen.create();
21232116
}
21242117

2125-
public abstract RubyModule executeSetVisibility(VirtualFrame frame, RubyModule module,
2126-
Object[] arguments);
2118+
@Child private SetMethodVisibilityNode setMethodVisibilityNode = SetMethodVisibilityNode.create();
2119+
2120+
public abstract RubyModule execute(VirtualFrame frame, RubyModule module, Object[] names,
2121+
Visibility visibility);
21272122

21282123
@Specialization
2129-
protected RubyModule setVisibility(VirtualFrame frame, RubyModule module, Object[] names) {
2124+
protected RubyModule setVisibility(
2125+
VirtualFrame frame, RubyModule module, Object[] names, Visibility visibility) {
21302126
if (names.length == 0) {
21312127
DeclarationContext.setCurrentVisibility(getContext(), visibility);
21322128
} else {
21332129
for (Object name : names) {
2134-
setMethodVisibilityNode.executeSetMethodVisibility(frame, module, name);
2130+
setMethodVisibilityNode.execute(module, name, visibility);
21352131
}
21362132
}
21372133

@@ -2142,19 +2138,17 @@ protected RubyModule setVisibility(VirtualFrame frame, RubyModule module, Object
21422138

21432139
public abstract static class SetMethodVisibilityNode extends RubyContextNode {
21442140

2145-
private final Visibility visibility;
2141+
public static SetMethodVisibilityNode create() {
2142+
return SetMethodVisibilityNodeGen.create();
2143+
}
21462144

21472145
@Child private NameToJavaStringNode nameToJavaStringNode = NameToJavaStringNode.create();
21482146
@Child private AddMethodNode addMethodNode = AddMethodNode.create(true);
21492147

2150-
public SetMethodVisibilityNode(Visibility visibility) {
2151-
this.visibility = visibility;
2152-
}
2153-
2154-
public abstract void executeSetMethodVisibility(VirtualFrame frame, RubyModule module, Object name);
2148+
public abstract void execute(RubyModule module, Object name, Visibility visibility);
21552149

21562150
@Specialization
2157-
protected void setMethodVisibility(RubyModule module, Object name,
2151+
protected void setMethodVisibility(RubyModule module, Object name, Visibility visibility,
21582152
@Cached BranchProfile errorProfile) {
21592153
final String methodName = nameToJavaStringNode.execute(name);
21602154

0 commit comments

Comments
 (0)