Skip to content

Commit 74f0d89

Browse files
committed
Address review comments
1 parent a9b1a5b commit 74f0d89

File tree

2 files changed

+22
-3
lines changed

2 files changed

+22
-3
lines changed

mypyc/irbuild/specialize.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
from __future__ import annotations
1616

17-
from typing import Callable, Optional
17+
from typing import Callable, Final, Optional
1818

1919
from mypy.nodes import (
2020
ARG_NAMED,
@@ -546,7 +546,7 @@ def gen_inner_stmts() -> None:
546546
return retval
547547

548548

549-
isinstance_primitives = {"list": isinstance_list}
549+
isinstance_primitives: Final = {"builtins.list": isinstance_list}
550550

551551

552552
@specialize_function("builtins.isinstance")
@@ -575,7 +575,7 @@ def translate_isinstance(builder: IRBuilder, expr: CallExpr, callee: RefExpr) ->
575575
if isinstance(expr.args[1], RefExpr):
576576
node = expr.args[1].node
577577
if node:
578-
desc = isinstance_primitives.get(node.name)
578+
desc = isinstance_primitives.get(node.fullname)
579579
if desc:
580580
obj = builder.accept(expr.args[0])
581581
return builder.primitive_op(desc, [obj], expr.line)

mypyc/test-data/run-lists.test

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -539,12 +539,31 @@ def test_sorted() -> None:
539539
assert sorted({2: "", 1: "", 3: ""}) == res
540540

541541
[case testIsInstance]
542+
from copysubclass import subc
542543
def test() -> None:
543544
assert isinstance([], list)
544545
assert isinstance([1,2,3], list)
545546
assert isinstance(['a','b'], list)
547+
assert isinstance(subc(), list)
548+
assert isinstance(subc([1,2,3]), list)
549+
assert isinstance(subc(['a','b']), list)
546550

547551
assert not isinstance({}, list)
548552
assert not isinstance((), list)
553+
assert not isinstance((1,2,3), list)
554+
assert not isinstance(('a','b'), list)
549555
assert not isinstance(1, list)
550556
assert not isinstance('a', list)
557+
558+
[file copysubclass.py]
559+
from typing import Any
560+
class subc(list[Any]):
561+
pass
562+
563+
[case testUserDefinedList]
564+
class list:
565+
pass
566+
567+
def test() -> None:
568+
assert isinstance(list(), list)
569+
assert not isinstance([list()], list)

0 commit comments

Comments
 (0)