Skip to content

Commit d54ddbb

Browse files
committed
remove PString->String type system cast from BytesInitNode
1 parent 5856260 commit d54ddbb

File tree

1 file changed

+7
-9
lines changed
  • graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/bytes

1 file changed

+7
-9
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/bytes/BytesNodes.java

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,6 @@
8686
import com.oracle.graal.python.nodes.control.GetNextNode;
8787
import com.oracle.graal.python.nodes.function.builtins.clinic.ArgumentCastNode;
8888
import com.oracle.graal.python.nodes.object.IsBuiltinClassProfile;
89-
import com.oracle.graal.python.nodes.truffle.PythonArithmeticTypes;
9089
import com.oracle.graal.python.nodes.util.CastToByteNode;
9190
import com.oracle.graal.python.nodes.util.CastToJavaByteNode;
9291
import com.oracle.graal.python.nodes.util.CastToJavaStringNode;
@@ -106,7 +105,6 @@
106105
import com.oracle.truffle.api.dsl.GenerateUncached;
107106
import com.oracle.truffle.api.dsl.ImportStatic;
108107
import com.oracle.truffle.api.dsl.Specialization;
109-
import com.oracle.truffle.api.dsl.TypeSystemReference;
110108
import com.oracle.truffle.api.frame.VirtualFrame;
111109
import com.oracle.truffle.api.interop.UnsupportedMessageException;
112110
import com.oracle.truffle.api.library.CachedLibrary;
@@ -588,7 +586,6 @@ public static ExpectStringNode create(@ArgumentIndex int argNum, String classNam
588586
}
589587
}
590588

591-
@TypeSystemReference(PythonArithmeticTypes.class)
592589
@ImportStatic(PGuards.class)
593590
public abstract static class BytesInitNode extends PNodeWithRaise {
594591

@@ -629,15 +626,16 @@ static byte[] fromIterable(VirtualFrame frame, Object source, @SuppressWarnings(
629626
return toByteNode.execute(frame, source, lenNode.execute(frame, source));
630627
}
631628

632-
@Specialization
633-
byte[] fromString(String source, String encoding, @SuppressWarnings("unused") Object errors) {
629+
@Specialization(guards = {"isString(source)", "isString(encoding)"})
630+
byte[] fromString(Object source, Object encoding, Object errors,
631+
@Cached CastToJavaStringNode castStr) {
634632
String e = errors instanceof String ? (String) errors : "strict";
635-
return BytesBuiltins.stringToByte(source, encoding, e, getRaiseNode());
633+
return BytesBuiltins.stringToByte(castStr.execute(source), castStr.execute(encoding), e, getRaiseNode());
636634
}
637635

638-
@Specialization
636+
@Specialization(guards = "isString(source)")
639637
@SuppressWarnings("unused")
640-
byte[] fromString(String source, PNone encoding, Object errors) {
638+
byte[] fromString(Object source, PNone encoding, Object errors) {
641639
throw raise(TypeError, ErrorMessages.STRING_ARG_WO_ENCODING);
642640
}
643641

@@ -838,7 +836,7 @@ static String doit(VirtualFrame frame, Object value,
838836
}
839837

840838
/*-
841-
* This should be equivalent to PyUnicode_EncodeFSDefault
839+
* This should be equivalent to PyUnicode_EncodeFSDefault
842840
* TODO: encoding perference is set per context but will force
843841
* it to UTF-8 for the time being.
844842
*/

0 commit comments

Comments
 (0)