Skip to content

Commit 07b2cb0

Browse files
committed
Adding missing specializations.
1 parent 8ce3de7 commit 07b2cb0

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -263,9 +263,10 @@ Object call(TruffleObject callable, Object[] arguments,
263263
@Cached("createExecute()") Node invokeNode) {
264264
try {
265265
// TODO This is a hack. The right solution would be to fix it
266-
// in com.oracle.truffle.regex.RegexEngine.RegexEngineMessageResolution.RegexEngineExecuteNode
266+
// in
267+
// com.oracle.truffle.regex.RegexEngine.RegexEngineMessageResolution.RegexEngineExecuteNode
267268
// where is only check whether the argumen is instance of String.
268-
// PString should be there unboxed.
269+
// PString should be there unboxed.
269270
for (int i = 0; i < arguments.length; i++) {
270271
if (arguments[i] instanceof PString) {
271272
arguments[i] = ((PString) arguments[i]).getValue();

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
import com.oracle.graal.python.builtins.Builtin;
4949
import com.oracle.graal.python.builtins.CoreFunctions;
5050
import com.oracle.graal.python.builtins.PythonBuiltins;
51+
import com.oracle.graal.python.builtins.objects.str.PString;
5152
import com.oracle.graal.python.nodes.function.PythonBuiltinNode;
5253
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
5354
import com.oracle.truffle.api.dsl.Cached;
@@ -85,5 +86,16 @@ public String normalize(@SuppressWarnings("unused") String form, String unistr,
8586
}
8687
return Normalizer.normalize(unistr, cachedNormForm);
8788
}
89+
90+
@Specialization(guards = {"form.equals(cachedForm)"}, limit = "4")
91+
public String normalize(@SuppressWarnings("unused") String form, PString unistr,
92+
@SuppressWarnings("unused") @Cached("form") String cachedForm,
93+
@Cached("getForm(cachedForm)") Normalizer.Form cachedNormForm) {
94+
if (cachedNormForm == null) {
95+
throw raise(ValueError, "invalid normalization form");
96+
}
97+
return Normalizer.normalize(unistr.getValue(), cachedNormForm);
98+
}
99+
88100
}
89101
}

0 commit comments

Comments
 (0)