Skip to content

Commit 6748f57

Browse files
committed
[GR-50105] Refactor some builtins to avoid truffle-static-method warnings
PullRequest: graalpython/3074
2 parents 9a27a61 + 3a3dea6 commit 6748f57

38 files changed

+885
-940
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/BinasciiModuleBuiltins.java

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@
7171
import com.oracle.graal.python.nodes.function.builtins.PythonClinicBuiltinNode;
7272
import com.oracle.graal.python.nodes.function.builtins.PythonTernaryClinicBuiltinNode;
7373
import com.oracle.graal.python.nodes.function.builtins.PythonUnaryClinicBuiltinNode;
74-
import com.oracle.graal.python.nodes.function.builtins.clinic.ArgumentCastNode.ArgumentCastNodeWithRaise;
74+
import com.oracle.graal.python.nodes.function.builtins.clinic.ArgumentCastNode;
7575
import com.oracle.graal.python.nodes.function.builtins.clinic.ArgumentClinicProvider;
7676
import com.oracle.graal.python.nodes.util.CastToTruffleStringNode;
7777
import com.oracle.graal.python.runtime.IndirectCallData;
@@ -104,7 +104,7 @@ protected List<? extends NodeFactory<? extends PythonBuiltinBaseNode>> getNodeFa
104104
return BinasciiModuleBuiltinsFactory.getFactories();
105105
}
106106

107-
abstract static class AsciiBufferConverter extends ArgumentCastNodeWithRaise {
107+
abstract static class AsciiBufferConverter extends ArgumentCastNode {
108108
@Specialization(guards = "acquireLib.hasBuffer(value)", limit = "getCallSiteInlineCacheMaxDepth()")
109109
Object doObject(VirtualFrame frame, Object value,
110110
@Cached("createFor(this)") IndirectCallData indirectCallData,
@@ -143,35 +143,37 @@ byte readByte(int byteOffset,
143143
}
144144

145145
@Specialization(guards = "isAscii(value, getCodeRangeNode)")
146-
Object asciiString(TruffleString value,
146+
static Object asciiString(TruffleString value,
147147
@Shared("getCodeRange") @Cached @SuppressWarnings("unused") TruffleString.GetCodeRangeNode getCodeRangeNode) {
148148
return new AsciiStringBuffer(value);
149149
}
150150

151151
@Specialization(guards = "!isAscii(value, getCodeRangeNode)")
152-
Object nonAsciiString(@SuppressWarnings("unused") TruffleString value,
153-
@Shared("getCodeRange") @Cached @SuppressWarnings("unused") TruffleString.GetCodeRangeNode getCodeRangeNode) {
154-
throw raise(ValueError, ErrorMessages.STRING_ARG_SHOULD_CONTAIN_ONLY_ASCII);
152+
static Object nonAsciiString(@SuppressWarnings("unused") TruffleString value,
153+
@Shared("getCodeRange") @Cached @SuppressWarnings("unused") TruffleString.GetCodeRangeNode getCodeRangeNode,
154+
@Shared @Cached PRaiseNode raiseNode) {
155+
throw raiseNode.raise(ValueError, ErrorMessages.STRING_ARG_SHOULD_CONTAIN_ONLY_ASCII);
155156
}
156157

157158
@Specialization
158-
@SuppressWarnings("truffle-static-method")
159-
Object string(PString value,
159+
static Object string(PString value,
160160
@Bind("this") Node inliningTarget,
161161
@Cached CastToTruffleStringNode cast,
162162
@Shared("getCodeRange") @Cached @SuppressWarnings("unused") TruffleString.GetCodeRangeNode getCodeRangeNode,
163-
@Cached InlinedConditionProfile asciiProfile) {
163+
@Cached InlinedConditionProfile asciiProfile,
164+
@Cached PRaiseNode.Lazy raiseNode) {
164165
TruffleString ts = cast.execute(inliningTarget, value);
165166
if (asciiProfile.profile(inliningTarget, isAscii(ts, getCodeRangeNode))) {
166167
return asciiString(ts, getCodeRangeNode);
167168
} else {
168-
return nonAsciiString(ts, getCodeRangeNode);
169+
return nonAsciiString(ts, getCodeRangeNode, raiseNode.get(inliningTarget));
169170
}
170171
}
171172

172173
@Fallback
173-
Object error(@SuppressWarnings("unused") Object value) {
174-
throw raise(TypeError, ErrorMessages.ARG_SHOULD_BE_BYTES_BUFFER_OR_ASCII_NOT_P, value);
174+
static Object error(@SuppressWarnings("unused") Object value,
175+
@Shared @Cached PRaiseNode raiseNode) {
176+
throw raiseNode.raise(TypeError, ErrorMessages.ARG_SHOULD_BE_BYTES_BUFFER_OR_ASCII_NOT_P, value);
175177
}
176178

177179
@ClinicConverterFactory

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/BuiltinConstructors.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1153,29 +1153,28 @@ protected static boolean isPrimitiveFloat(Node inliningTarget, Object cls, IsBui
11531153
public abstract static class FrozenSetNode extends PythonBinaryBuiltinNode {
11541154

11551155
@Specialization(guards = "isNoValue(arg)")
1156-
public PFrozenSet frozensetEmpty(Object cls, @SuppressWarnings("unused") PNone arg,
1156+
static PFrozenSet frozensetEmpty(Object cls, @SuppressWarnings("unused") PNone arg,
11571157
@Shared @Cached PythonObjectFactory factory) {
11581158
return factory.createFrozenSet(cls);
11591159
}
11601160

11611161
@Specialization(guards = "isBuiltinClass.profileIsAnyBuiltinClass(inliningTarget, cls)")
1162-
public static PFrozenSet frozensetIdentity(@SuppressWarnings("unused") Object cls, PFrozenSet arg,
1162+
static PFrozenSet frozensetIdentity(@SuppressWarnings("unused") Object cls, PFrozenSet arg,
11631163
@SuppressWarnings("unused") @Bind("this") Node inliningTarget,
11641164
@Shared("isBuiltinProfile") @SuppressWarnings("unused") @Cached IsAnyBuiltinClassProfile isBuiltinClass) {
11651165
return arg;
11661166
}
11671167

11681168
@Specialization(guards = "!isBuiltinClass.profileIsAnyBuiltinClass(inliningTarget, cls)")
1169-
public PFrozenSet subFrozensetIdentity(Object cls, PFrozenSet arg,
1169+
static PFrozenSet subFrozensetIdentity(Object cls, PFrozenSet arg,
11701170
@SuppressWarnings("unused") @Bind("this") Node inliningTarget,
11711171
@Shared("isBuiltinProfile") @SuppressWarnings("unused") @Cached IsAnyBuiltinClassProfile isBuiltinClass,
11721172
@Shared @Cached PythonObjectFactory factory) {
11731173
return factory.createFrozenSet(cls, arg.getDictStorage());
11741174
}
11751175

11761176
@Specialization(guards = {"!isNoValue(iterable)", "!isPFrozenSet(iterable)"})
1177-
@SuppressWarnings("truffle-static-method")
1178-
public PFrozenSet frozensetIterable(VirtualFrame frame, Object cls, Object iterable,
1177+
static PFrozenSet frozensetIterable(VirtualFrame frame, Object cls, Object iterable,
11791178
@Bind("this") Node inliningTarget,
11801179
@Cached HashingCollectionNodes.GetClonedHashingStorageNode getHashingStorageNode,
11811180
@Shared @Cached PythonObjectFactory factory) {

0 commit comments

Comments
 (0)