Skip to content

Commit f843d1e

Browse files
committed
Refactored isinstance function and test
1 parent e54f133 commit f843d1e

File tree

2 files changed

+5
-7
lines changed

2 files changed

+5
-7
lines changed

builtin/builtin.go

+4-6
Original file line numberDiff line numberDiff line change
@@ -839,16 +839,14 @@ func isinstance(obj py.Object, classOrTuple py.Object) (py.Bool, error) {
839839
print(obj.Type().Name, "\t", classOrTuple.Type().Name, "\n")
840840
switch classOrTuple.(type) {
841841
case py.Tuple:
842-
var res py.Bool
843842
var class_tuple = classOrTuple.(py.Tuple)
844843
for idx := range class_tuple {
845-
temp, err := isinstance(obj, class_tuple[idx])
846-
if err != nil {
847-
return false, err
844+
res, _ := isinstance(obj, class_tuple[idx])
845+
if res {
846+
return res, nil
848847
}
849-
res = res || temp
850848
}
851-
return res, nil
849+
return false, nil
852850
default:
853851
if classOrTuple.Type().ObjectType != py.TypeType {
854852
return false, py.ExceptionNewf(py.TypeError, "isinstance() arg 2 must be a type or tuple of types")

vm/tests/builtin.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ class A:
8080
assert False, "TypeError not raised"
8181

8282
try:
83-
isinstance(1, (A, "foo"))
83+
isinstance(1, [A, "foo"])
8484
except TypeError:
8585
pass
8686
else:

0 commit comments

Comments
 (0)