diff --git a/mypy/server/astdiff.py b/mypy/server/astdiff.py
--- a/mypy/server/astdiff.py
+++ b/mypy/server/astdiff.py
@@ -52,9 +52,10 @@ class level -- these are handled at attribute level (say, 'mod.Cls.method'
 
 from __future__ import annotations
 
-from typing import Sequence, Tuple
+from typing import Sequence, Tuple, cast
 from typing_extensions import TypeAlias as _TypeAlias
 
+from mypy.expandtype import expand_type
 from mypy.nodes import (
     UNBOUND_IMPORTED,
     Decorator,
@@ -88,6 +89,8 @@ class level -- these are handled at attribute level (say, 'mod.Cls.method'
     TypeAliasType,
     TypedDictType,
     TypeType,
+    TypeVarId,
+    TypeVarLikeType,
     TypeVarTupleType,
     TypeVarType,
     TypeVisitor,
@@ -388,7 +391,8 @@ def visit_parameters(self, typ: Parameters) -> SnapshotItem:
         )
 
     def visit_callable_type(self, typ: CallableType) -> SnapshotItem:
-        # FIX generics
+        if typ.is_generic():
+            typ = self.normalize_callable_variables(typ)
         return (
             "CallableType",
             snapshot_types(typ.arg_types),
@@ -397,8 +401,26 @@ def visit_callable_type(self, typ: CallableType) -> SnapshotItem:
             tuple(typ.arg_kinds),
             typ.is_type_obj(),
             typ.is_ellipsis_args,
+            snapshot_types(typ.variables),
         )
 
+    def normalize_callable_variables(self, typ: CallableType) -> CallableType:
+        """Normalize all type variable ids to run from -1 to -len(variables)."""
+        tvs = []
+        tvmap: dict[TypeVarId, Type] = {}
+        for i, v in enumerate(typ.variables):
+            tid = TypeVarId(-1 - i)
+            if isinstance(v, TypeVarType):
+                tv: TypeVarLikeType = v.copy_modified(id=tid)
+            elif isinstance(v, TypeVarTupleType):
+                tv = v.copy_modified(id=tid)
+            else:
+                assert isinstance(v, ParamSpecType)
+                tv = v.copy_modified(id=tid)
+            tvs.append(tv)
+            tvmap[v.id] = tv
+        return cast(CallableType, expand_type(typ, tvmap)).copy_modified(variables=tvs)
+
     def visit_tuple_type(self, typ: TupleType) -> SnapshotItem:
         return ("TupleType", snapshot_types(typ.items))
 
diff --git a/mypy/types.py b/mypy/types.py
--- a/mypy/types.py
+++ b/mypy/types.py
@@ -517,15 +517,23 @@ def __init__(
     @staticmethod
     def new_unification_variable(old: TypeVarType) -> TypeVarType:
         new_id = TypeVarId.new(meta_level=1)
+        return old.copy_modified(id=new_id)
+
+    def copy_modified(
+        self,
+        values: Bogus[list[Type]] = _dummy,
+        upper_bound: Bogus[Type] = _dummy,
+        id: Bogus[TypeVarId | int] = _dummy,
+    ) -> TypeVarType:
         return TypeVarType(
-            old.name,
-            old.fullname,
-            new_id,
-            old.values,
-            old.upper_bound,
-            old.variance,
-            old.line,
-            old.column,
+            self.name,
+            self.fullname,
+            self.id if id is _dummy else id,
+            self.values if values is _dummy else values,
+            self.upper_bound if upper_bound is _dummy else upper_bound,
+            self.variance,
+            self.line,
+            self.column,
         )
 
     def accept(self, visitor: TypeVisitor[T]) -> T:
@@ -616,16 +624,7 @@ def __init__(
     @staticmethod
     def new_unification_variable(old: ParamSpecType) -> ParamSpecType:
         new_id = TypeVarId.new(meta_level=1)
-        return ParamSpecType(
-            old.name,
-            old.fullname,
-            new_id,
-            old.flavor,
-            old.upper_bound,
-            line=old.line,
-            column=old.column,
-            prefix=old.prefix,
-        )
+        return old.copy_modified(id=new_id)
 
     def with_flavor(self, flavor: int) -> ParamSpecType:
         return ParamSpecType(
@@ -737,8 +736,16 @@ def __eq__(self, other: object) -> bool:
     @staticmethod
     def new_unification_variable(old: TypeVarTupleType) -> TypeVarTupleType:
         new_id = TypeVarId.new(meta_level=1)
+        return old.copy_modified(id=new_id)
+
+    def copy_modified(self, id: Bogus[TypeVarId | int] = _dummy) -> TypeVarTupleType:
         return TypeVarTupleType(
-            old.name, old.fullname, new_id, old.upper_bound, line=old.line, column=old.column
+            self.name,
+            self.fullname,
+            self.id if id is _dummy else id,
+            self.upper_bound,
+            line=self.line,
+            column=self.column,
         )
 
 

diff --git a/test-data/unit/fine-grained.test b/test-data/unit/fine-grained.test
--- a/test-data/unit/fine-grained.test
+++ b/test-data/unit/fine-grained.test
@@ -9969,3 +9969,65 @@ m.py:9: note:     Expected:
 m.py:9: note:         def update() -> bool
 m.py:9: note:     Got:
 m.py:9: note:         def update() -> str
+
+[case testBoundGenericMethodFine]
+import main
+[file main.py]
+import lib
+[file main.py.3]
+import lib
+reveal_type(lib.foo(42))
+[file lib/__init__.pyi]
+from lib import context
+foo = context.test.foo
+[file lib/context.pyi]
+from typing import TypeVar
+import lib.other
+
+T = TypeVar("T")
+class Test:
+    def foo(self, x: T, n: lib.other.C = ...) -> T: ...
+test: Test
+
+[file lib/other.pyi]
+class C: ...
+[file lib/other.pyi.2]
+class B: ...
+class C(B): ...
+[out]
+==
+==
+main.py:2: note: Revealed type is "builtins.int"
+
+[case testBoundGenericMethodParamSpecFine]
+import main
+[file main.py]
+import lib
+[file main.py.3]
+from typing import Callable
+import lib
+f: Callable[[], int]
+reveal_type(lib.foo(f))
+[file lib/__init__.pyi]
+from lib import context
+foo = context.test.foo
+[file lib/context.pyi]
+from typing_extensions import ParamSpec
+from typing import Callable
+import lib.other
+
+P = ParamSpec("P")
+class Test:
+    def foo(self, x: Callable[P, int], n: lib.other.C = ...) -> Callable[P, str]: ...
+test: Test
+
+[file lib/other.pyi]
+class C: ...
+[file lib/other.pyi.2]
+class B: ...
+class C(B): ...
+[builtins fixtures/dict.pyi]
+[out]
+==
+==
+main.py:4: note: Revealed type is "def () -> builtins.str"

dmypy crash on followup check of file importing `multiprocessing`
<!--
  Use this form only if mypy reports an "INTERNAL ERROR" and/or gives a traceback.
  Please include the traceback and all other messages below (use `mypy --show-traceback`).
-->

**Crash Report**

The `dmypy` daemon crashes if a check is performed on a file importing `multiprocessing.util` after an earlier check of any other set of files.

```
Traceback (most recent call last):
  File "/Users/lwfitzgerald/mypy/mypy/dmypy_server.py", line 229, in serve
    resp = self.run_command(command, data)
  File "/Users/lwfitzgerald/mypy/mypy/dmypy_server.py", line 272, in run_command
    return method(self, **data)
  File "/Users/lwfitzgerald/mypy/mypy/dmypy_server.py", line 331, in cmd_run
    return self.check(sources, is_tty, terminal_width)
  File "/Users/lwfitzgerald/mypy/mypy/dmypy_server.py", line 393, in check
    messages = self.fine_grained_increment_follow_imports(sources)
  File "/Users/lwfitzgerald/mypy/mypy/dmypy_server.py", line 568, in fine_grained_increment_follow_imports
    messages = fine_grained_manager.update(changed, [])
  File "/Users/lwfitzgerald/mypy/mypy/server/update.py", line 245, in update
    result = self.update_one(changed_modules, initial_set, removed_set, blocking_error)
  File "/Users/lwfitzgerald/mypy/mypy/server/update.py", line 328, in update_one
    result = self.update_module(next_id, next_path, next_id in removed_set)
  File "/Users/lwfitzgerald/mypy/mypy/server/update.py", line 414, in update_module
    remaining += propagate_changes_using_dependencies(
  File "/Users/lwfitzgerald/mypy/mypy/server/update.py", line 808, in propagate_changes_using_dependencies
    raise RuntimeError('Max number of iterations (%d) reached (endless loop?)' % MAX_ITER)
RuntimeError: Max number of iterations (1000) reached (endless loop?)
```

If a check of a file importing of `multiprocessing.util` is the **first** check run using the daemon, the daemon does not crash and correctly errors that the `util` module is not present in the `multiprocessing` `typeshed` stubs:
```
Daemon started
b.py:1: error: Cannot find implementation or library stub for module named "multiprocessing.util"
b.py:1: note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports
```

**To Reproduce**

```
# Create the files
touch a.py
echo "import multiprocessing.util" > b.py

# Clean up any old daemon
dmypy kill || true

# Perform the first check
dmypy run -- --show-traceback a.py

# Perform the second check on a file containing "import multiprocessing.util"
dmypy run -- --show-traceback b.py
```

**Your Environment**

<!-- Include as many relevant details about the environment you experienced the bug in -->
Dependency versions:
```
mypy-extensions==0.4.3
tomli==2.0.0
typing_extensions==4.0.1
```

- Mypy version used: `mypy 0.940+dev.63abf4b5b26edb2c7db2a9ff50dfa0e63a43434a`. Also reproduced on `0.920`.
- Mypy command-line flags: `--show-traceback`
- Mypy configuration options from `mypy.ini` (and other config files): None
- Python version used: `3.9.8`
- Operating system and version: MacOS 11.6 (Big Sur)

<!--
You can freely edit this text, please remove all the lines
you believe are unnecessary.
-->


Having looked at this again, it's actually worse. The crash appears to happen simply with an import of `multiprocessing`:
```bash
# Create the files
touch a.py
echo "import multiprocessing" > b.py

# Clean up any old daemon
dmypy kill || true

# Perform the first check
dmypy run -- --show-traceback a.py

# Perform the second check on a file containing "import multiprocessing"
dmypy run -- --show-traceback b.py
```
```
Daemon crashed!
Traceback (most recent call last):
  File "/Users/lwfitzgerald/mypy/mypy/dmypy_server.py", line 229, in serve
    resp = self.run_command(command, data)
  File "/Users/lwfitzgerald/mypy/mypy/dmypy_server.py", line 272, in run_command
    return method(self, **data)
  File "/Users/lwfitzgerald/mypy/mypy/dmypy_server.py", line 331, in cmd_run
    return self.check(sources, is_tty, terminal_width)
  File "/Users/lwfitzgerald/mypy/mypy/dmypy_server.py", line 393, in check
    messages = self.fine_grained_increment_follow_imports(sources)
  File "/Users/lwfitzgerald/mypy/mypy/dmypy_server.py", line 568, in fine_grained_increment_follow_imports
    messages = fine_grained_manager.update(changed, [])
  File "/Users/lwfitzgerald/mypy/mypy/server/update.py", line 245, in update
    result = self.update_one(changed_modules, initial_set, removed_set, blocking_error)
  File "/Users/lwfitzgerald/mypy/mypy/server/update.py", line 328, in update_one
    result = self.update_module(next_id, next_path, next_id in removed_set)
  File "/Users/lwfitzgerald/mypy/mypy/server/update.py", line 414, in update_module
    remaining += propagate_changes_using_dependencies(
  File "/Users/lwfitzgerald/mypy/mypy/server/update.py", line 808, in propagate_changes_using_dependencies
    raise RuntimeError('Max number of iterations (%d) reached (endless loop?)' % MAX_ITER)
RuntimeError: Max number of iterations (1000) reached (endless loop?)
```

I will update the issue title accordingly.
I can reproduce the issue. This seems to have been around for some time, at least from 0.900.
I've just run into this issue and did some initial debugging. Mypy seems to get stuck inside of `propagate_changes_using_dependencies` on the following nodes:

```
LOG:  fine-grained: triggered: ['<multiprocessing.Value>', '<multiprocessing.RawArray>', '<multiprocessing.RawValue>', '<multiprocessing.Array>']
LOG:  fine-grained: triggered: ['<multiprocessing.Value>', '<multiprocessing.RawArray>', '<multiprocessing.RawValue>', '<multiprocessing.Array>']
LOG:  fine-grained: triggered: ['<multiprocessing.Value>', '<multiprocessing.RawArray>', '<multiprocessing.RawValue>', '<multiprocessing.Array>']
LOG:  fine-grained: triggered: ['<multiprocessing.Value>', '<multiprocessing.RawArray>', '<multiprocessing.RawValue>', '<multiprocessing.Array>']
...
```

Setting a breakpoint within `compare_symbol_table_snapshots` reveals the following:

```
> /Users/kjagiello/Dev/private/mypy/mypy/server/astdiff.py(121)compare_symbol_table_snapshots()
-> triggers.add(item_name)
(Pdb) item_name
'multiprocessing.Array'
(Pdb) snapshot1[name]
('Var', ('multiprocessing.Array', 1, True), ('Overloaded', (('CallableType', (('TypeType', ('TypeVar', '_CT', 'multiprocessing.context._CT', 107, 0, (), ('Instance', 'ctypes._CData', (), ('None',)), 0)), ('UnionType', (('Instance', 'builtins.int', (), ('None',)), ('Instance', 'typing.Sequence', (('AnyType',),), ('None',)))), ('LiteralType', ('Instance', 'builtins.bool', (), ('None',)), False)), ('TypeVar', '_CT', 'multiprocessing.context._CT', 107, 0, (), ('Instance', 'ctypes._CData', (), ('None',)), 0), ('typecode_or_type', 'size_or_initializer', 'lock'), (<ArgKind.ARG_POS: 0>, <ArgKind.ARG_POS: 0>, <ArgKind.ARG_NAMED: 3>), False, False), ('CallableType', (('TypeType', ('TypeVar', '_CT', 'multiprocessing.context._CT', 108, 0, (), ('Instance', 'ctypes._CData', (), ('None',)), 0)), ('UnionType', (('Instance', 'builtins.int', (), ('None',)), ('Instance', 'typing.Sequence', (('AnyType',),), ('None',)))), ('UnionType', (('AnyType',), ('LiteralType', ('Instance', 'builtins.bool', (), ('None',)), True)))), ('AnyType',), ('typecode_or_type', 'size_or_initializer', 'lock'), (<ArgKind.ARG_POS: 0>, <ArgKind.ARG_POS: 0>, <ArgKind.ARG_NAMED: 3>), False, False), ('CallableType', (('Instance', 'builtins.str', (), ('None',)), ('UnionType', (('Instance', 'builtins.int', (), ('None',)), ('Instance', 'typing.Sequence', (('AnyType',),), ('None',)))), ('UnionType', (('LiteralType', ('Instance', 'builtins.bool', (), ('None',)), True), ('TypeAliasType', 'multiprocessing.context._LockLike', ())))), ('AnyType',), ('typecode_or_type', 'size_or_initializer', 'lock'), (<ArgKind.ARG_POS: 0>, <ArgKind.ARG_POS: 0>, <ArgKind.ARG_NAMED: 3>), False, False), ('CallableType', (('UnionType', (('Instance', 'builtins.str', (), ('None',)), ('TypeType', ('Instance', 'ctypes._CData', (), ('None',))))), ('UnionType', (('Instance', 'builtins.int', (), ('None',)), ('Instance', 'typing.Sequence', (('AnyType',),), ('None',)))), ('UnionType', (('Instance', 'builtins.bool', (), ('None',)), ('TypeAliasType', 'multiprocessing.context._LockLike', ())))), ('AnyType',), ('typecode_or_type', 'size_or_initializer', 'lock'), (<ArgKind.ARG_POS: 0>, <ArgKind.ARG_POS: 0>, <ArgKind.ARG_NAMED_OPT: 5>), False, False))), False)
(Pdb) snapshot2[name]
('Var', ('multiprocessing.Array', 1, True), ('Overloaded', (('CallableType', (('TypeType', ('TypeVar', '_CT', 'multiprocessing.context._CT', 113, 0, (), ('Instance', 'ctypes._CData', (), ('None',)), 0)), ('UnionType', (('Instance', 'builtins.int', (), ('None',)), ('Instance', 'typing.Sequence', (('AnyType',),), ('None',)))), ('LiteralType', ('Instance', 'builtins.bool', (), ('None',)), False)), ('TypeVar', '_CT', 'multiprocessing.context._CT', 113, 0, (), ('Instance', 'ctypes._CData', (), ('None',)), 0), ('typecode_or_type', 'size_or_initializer', 'lock'), (<ArgKind.ARG_POS: 0>, <ArgKind.ARG_POS: 0>, <ArgKind.ARG_NAMED: 3>), False, False), ('CallableType', (('TypeType', ('TypeVar', '_CT', 'multiprocessing.context._CT', 114, 0, (), ('Instance', 'ctypes._CData', (), ('None',)), 0)), ('UnionType', (('Instance', 'builtins.int', (), ('None',)), ('Instance', 'typing.Sequence', (('AnyType',),), ('None',)))), ('UnionType', (('AnyType',), ('LiteralType', ('Instance', 'builtins.bool', (), ('None',)), True)))), ('AnyType',), ('typecode_or_type', 'size_or_initializer', 'lock'), (<ArgKind.ARG_POS: 0>, <ArgKind.ARG_POS: 0>, <ArgKind.ARG_NAMED: 3>), False, False), ('CallableType', (('Instance', 'builtins.str', (), ('None',)), ('UnionType', (('Instance', 'builtins.int', (), ('None',)), ('Instance', 'typing.Sequence', (('AnyType',),), ('None',)))), ('UnionType', (('LiteralType', ('Instance', 'builtins.bool', (), ('None',)), True), ('TypeAliasType', 'multiprocessing.context._LockLike', ())))), ('AnyType',), ('typecode_or_type', 'size_or_initializer', 'lock'), (<ArgKind.ARG_POS: 0>, <ArgKind.ARG_POS: 0>, <ArgKind.ARG_NAMED: 3>), False, False), ('CallableType', (('UnionType', (('Instance', 'builtins.str', (), ('None',)), ('TypeType', ('Instance', 'ctypes._CData', (), ('None',))))), ('UnionType', (('Instance', 'builtins.int', (), ('None',)), ('Instance', 'typing.Sequence', (('AnyType',),), ('None',)))), ('UnionType', (('Instance', 'builtins.bool', (), ('None',)), ('TypeAliasType', 'multiprocessing.context._LockLike', ())))), ('AnyType',), ('typecode_or_type', 'size_or_initializer', 'lock'), (<ArgKind.ARG_POS: 0>, <ArgKind.ARG_POS: 0>, <ArgKind.ARG_NAMED_OPT: 5>), False, False))), False)

... next occurence:

-> triggers.add(item_name)
(Pdb) item_name
'multiprocessing.Array'
(Pdb) snapshot1[name]
('Var', ('multiprocessing.Array', 1, True), ('Overloaded', (('CallableType', (('TypeType', ('TypeVar', '_CT', 'multiprocessing.context._CT', 113, 0, (), ('Instance', 'ctypes._CData', (), ('None',)), 0)), ('UnionType', (('Instance', 'builtins.int', (), ('None',)), ('Instance', 'typing.Sequence', (('AnyType',),), ('None',)))), ('LiteralType', ('Instance', 'builtins.bool', (), ('None',)), False)), ('TypeVar', '_CT', 'multiprocessing.context._CT', 113, 0, (), ('Instance', 'ctypes._CData', (), ('None',)), 0), ('typecode_or_type', 'size_or_initializer', 'lock'), (<ArgKind.ARG_POS: 0>, <ArgKind.ARG_POS: 0>, <ArgKind.ARG_NAMED: 3>), False, False), ('CallableType', (('TypeType', ('TypeVar', '_CT', 'multiprocessing.context._CT', 114, 0, (), ('Instance', 'ctypes._CData', (), ('None',)), 0)), ('UnionType', (('Instance', 'builtins.int', (), ('None',)), ('Instance', 'typing.Sequence', (('AnyType',),), ('None',)))), ('UnionType', (('AnyType',), ('LiteralType', ('Instance', 'builtins.bool', (), ('None',)), True)))), ('AnyType',), ('typecode_or_type', 'size_or_initializer', 'lock'), (<ArgKind.ARG_POS: 0>, <ArgKind.ARG_POS: 0>, <ArgKind.ARG_NAMED: 3>), False, False), ('CallableType', (('Instance', 'builtins.str', (), ('None',)), ('UnionType', (('Instance', 'builtins.int', (), ('None',)), ('Instance', 'typing.Sequence', (('AnyType',),), ('None',)))), ('UnionType', (('LiteralType', ('Instance', 'builtins.bool', (), ('None',)), True), ('TypeAliasType', 'multiprocessing.context._LockLike', ())))), ('AnyType',), ('typecode_or_type', 'size_or_initializer', 'lock'), (<ArgKind.ARG_POS: 0>, <ArgKind.ARG_POS: 0>, <ArgKind.ARG_NAMED: 3>), False, False), ('CallableType', (('UnionType', (('Instance', 'builtins.str', (), ('None',)), ('TypeType', ('Instance', 'ctypes._CData', (), ('None',))))), ('UnionType', (('Instance', 'builtins.int', (), ('None',)), ('Instance', 'typing.Sequence', (('AnyType',),), ('None',)))), ('UnionType', (('Instance', 'builtins.bool', (), ('None',)), ('TypeAliasType', 'multiprocessing.context._LockLike', ())))), ('AnyType',), ('typecode_or_type', 'size_or_initializer', 'lock'), (<ArgKind.ARG_POS: 0>, <ArgKind.ARG_POS: 0>, <ArgKind.ARG_NAMED_OPT: 5>), False, False))), False)
(Pdb) snapshot2[name]
('Var', ('multiprocessing.Array', 1, True), ('Overloaded', (('CallableType', (('TypeType', ('TypeVar', '_CT', 'multiprocessing.context._CT', 119, 0, (), ('Instance', 'ctypes._CData', (), ('None',)), 0)), ('UnionType', (('Instance', 'builtins.int', (), ('None',)), ('Instance', 'typing.Sequence', (('AnyType',),), ('None',)))), ('LiteralType', ('Instance', 'builtins.bool', (), ('None',)), False)), ('TypeVar', '_CT', 'multiprocessing.context._CT', 119, 0, (), ('Instance', 'ctypes._CData', (), ('None',)), 0), ('typecode_or_type', 'size_or_initializer', 'lock'), (<ArgKind.ARG_POS: 0>, <ArgKind.ARG_POS: 0>, <ArgKind.ARG_NAMED: 3>), False, False), ('CallableType', (('TypeType', ('TypeVar', '_CT', 'multiprocessing.context._CT', 120, 0, (), ('Instance', 'ctypes._CData', (), ('None',)), 0)), ('UnionType', (('Instance', 'builtins.int', (), ('None',)), ('Instance', 'typing.Sequence', (('AnyType',),), ('None',)))), ('UnionType', (('AnyType',), ('LiteralType', ('Instance', 'builtins.bool', (), ('None',)), True)))), ('AnyType',), ('typecode_or_type', 'size_or_initializer', 'lock'), (<ArgKind.ARG_POS: 0>, <ArgKind.ARG_POS: 0>, <ArgKind.ARG_NAMED: 3>), False, False), ('CallableType', (('Instance', 'builtins.str', (), ('None',)), ('UnionType', (('Instance', 'builtins.int', (), ('None',)), ('Instance', 'typing.Sequence', (('AnyType',),), ('None',)))), ('UnionType', (('LiteralType', ('Instance', 'builtins.bool', (), ('None',)), True), ('TypeAliasType', 'multiprocessing.context._LockLike', ())))), ('AnyType',), ('typecode_or_type', 'size_or_initializer', 'lock'), (<ArgKind.ARG_POS: 0>, <ArgKind.ARG_POS: 0>, <ArgKind.ARG_NAMED: 3>), False, False), ('CallableType', (('UnionType', (('Instance', 'builtins.str', (), ('None',)), ('TypeType', ('Instance', 'ctypes._CData', (), ('None',))))), ('UnionType', (('Instance', 'builtins.int', (), ('None',)), ('Instance', 'typing.Sequence', (('AnyType',),), ('None',)))), ('UnionType', (('Instance', 'builtins.bool', (), ('None',)), ('TypeAliasType', 'multiprocessing.context._LockLike', ())))), ('AnyType',), ('typecode_or_type', 'size_or_initializer', 'lock'), (<ArgKind.ARG_POS: 0>, <ArgKind.ARG_POS: 0>, <ArgKind.ARG_NAMED_OPT: 5>), False, False))), False)
```

As you can see the ID of the `multiprocessing.context._CT` TypeVar seems to always differ between the snapshots.
A self-contained test case:
```
[case testBoundGenericMethodFine]
import lib
[file lib/__init__.pyi]
from lib import context
foo = context.test.foo
[file lib/context.pyi]
from typing import TypeVar
import lib.other

T = TypeVar("T")
class Test:
    def foo(self, x: T, n: lib.other.C) -> T: ...
test: Test

[file lib/other.pyi]
class C: ...
[file lib/other.pyi.2]
class B: ...
class C(B): ...
[out]
==
```
Unfortunately, this is a fundamental problem. Each time we look up a method, we call `freshen_function_type_vars()` on it, because otherwise there may be type variable clashes. Therefore, there may be situations where we never reach a fixed point.
I think our type variable identity system needs to be seriously cleaned up/re-implemented. There is a meta issue on this https://github.com/python/mypy/issues/4814, and it may be a quite large project (and requires good understanding of mypy internals).
Actually I think there may be a simple short term solution for this. We can "anonimize" generic callables before comparisons. Anyway, their type variables are purely internal, and can leak only if there is a bug (like famous https://github.com/python/mypy/issues/1317)
mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testTestSignatureOfInheritedMethod mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testReprocessFunction mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAddedIgnoreWithMissingImports mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testRemoveBaseClass mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testReprocessMethodInNestedClassSemanal mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testRemoveBaseClass2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testReprocessTopLevel mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testChangeInPackage mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testRemovedIgnoreWithMissingImport mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testBaseClassDeleted mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testTriggerTargetInPackage mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testReprocessMethod mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testChangeInPackage__init__ mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testBaseClassOfNestedClassDeleted mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testRemovedModuleUnderIgnore mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testTriggerTargetInPackage__init__ mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testReprocessMethodShowSource mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testFunctionMissingModuleAttribute mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testModuleAttributeTypeChanges mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testImportQualifiedModuleName mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testTopLevelMissingModuleAttribute mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::AddedModuleUnderIgnore mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testClassChangedIntoFunction mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testTwoStepsDueToModuleAttribute mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testTypeAliasRefresh mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testClassChangedIntoFunction2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testIgnoreInBetween mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testTypeVarRefresh mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAttributeTypeChanged mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testTwoStepsDueToMultipleNamespaces mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testIgnoredAttrReprocessedModule mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testConstructorSignatureChanged mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAttributeRemoved mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testIgnoredAttrReprocessedBase mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testVariableTypeBecomesInvalid mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testRefreshTyping mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testConstructorSignatureChanged2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testIgnoredAttrReprocessedMeta mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testTwoIncrementalSteps mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testConstructorSignatureChanged3 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testNamedTupleRefresh mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testConstructorAdded mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testTwoRounds mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testModuleLevelAttributeRefresh mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testFixTypeError mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testClassBodyRefresh mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testDataclassUpdate1 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testConstructorDeleted mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testFixTypeError2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testFixSemanticAnalysisError mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testBaseClassConstructorChanged mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testDecoratedMethodRefresh mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testContinueToReportTypeCheckError mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testSuperField mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testDataclassUpdate2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testContinueToReportSemanticAnalysisError mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testImportFrom mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testTwoPassTypeChecking mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testImportFrom2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testContinueToReportErrorAtTopLevel mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testImportFromTargetsClass mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testStripRevealType mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testImportFromTargetsVariable mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testDataclassUpdate3 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testImportFromSubmoduleOfPackage mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testContinueToReportErrorInMethod mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testImportedFunctionGetsImported mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testDecoratorTypeAfterReprocessing mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testNestedClassMethodSignatureChanges mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testInitialBatchGeneratedError mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testDataclassUpdate4 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testKeepReportingErrorIfNoChanges mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testNestedClassAttributeTypeChanges mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testDecoratorSpecialCase1 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testDataclassUpdate5 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testFixErrorAndReintroduce mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testReprocessMethodInNestedClass mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testIgnoreWorksAfterUpdate mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testDecoratorSpecialCase2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testDataclassUpdate6 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testDecoratorMethodCompat mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testIgnoreWorksWithMissingImports mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testPreviousErrorInDecoratedFunction mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testDecoratorUpdateMod mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testMroSpecialCase mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testPreviousErrorInDecoratedMethodOverride mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testDataclassUpdate8 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testPreviousErrorInMethodSemanal1 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testPreviousErrorInMethodSemanal2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testMetaclassAttributes mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testPreviousErrorInMethodSemanalPass3 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testDecoratorUpdateFunc mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testDataclassUpdate9 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testMetaclassAttributesDirect mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testMetaclassOperators mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::DecoratorUpdateMethod mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testPreviousErrorInOverloadedFunctionSemanalPass3 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testDecoratorUpdateDeeepNested mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testMetaclassOperatorsDirect mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testDecoratorUpdateNestedClass mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testFineMetaclassUpdate mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testFineMetaclassRecalculation mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testDecoratorUpdateClassInFunction mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testPreviousErrorInOverloadedFunction mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testFineMetaclassDeclaredUpdate mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testDecoratorUpdateMROUpdated mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testFineMetaclassRemoveFromClass mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAttrsUpdate1 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testOverloadRefresh mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testFineMetaclassRemoveFromClass2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testPreviousErrorInOverloadedFunctionSemanal mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testBadMetaclassCorrected mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testFixedAttrOnAddedMetaclass mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testOverloadSpecialCase mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testIndirectSubclassReferenceMetaclass mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testPreviousErrorInDecoratedMethodSemanalPass3 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testOverloadClassmethodDisappears mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testMetaclassDeletion mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testFineGrainedCallable mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testFixMissingMetaclass mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAttrsUpdate2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testRefreshFunctionalNamedTuple mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testGoodMetaclassSpoiled mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testRefreshSubclassNestedInFunction1 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testRefreshGenericSubclass mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testRefreshGenericClass mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testRefreshSubclassNestedInFunction2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAttrsUpdate3 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testRefreshGenericAndFailInPass3 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testRefreshNamedTupleSubclass mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testUnannotatedClass mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testInferAttributeTypeAndMultipleStaleTargets mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAttrsUpdate4 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testNewTypeRefresh mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testSuperBasics mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testNamedTupleUpdate mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testErrorInTypeCheckSecondPassThroughPropagation mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testRefreshFunctionalEnum mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testNamedTupleUpdate2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAttrsUpdateBaseKwOnly mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testBasicAliasUpdate mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testPartialTypeInNestedClass mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAddBaseClassMethodCausingInvalidOverride mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testNamedTupleUpdate3 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testBasicAliasUpdateGeneric mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testRefreshPartialTypeInClass mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testModifyBaseClassMethodCausingInvalidOverride mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAliasFineNormalMod mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testNamedTupleUpdate4 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAddBaseClassAttributeCausingErrorInSubclass mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testRefreshPartialTypeInferredAttributeIndex mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAliasFineNormalFunc mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testChangeBaseClassAttributeType mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAliasFineNormalClass mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testRefreshPartialTypeInferredAttributeAssign mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testNamedTupleUpdate5 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testRemoveAttributeInBaseClass mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAliasFineNormalClassBases mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testRefreshPartialTypeInferredAttributeAppend mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testNoStrictOptionalModule mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testNamedTupleUpdateGeneric mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testRefreshTryExcept mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testNoStrictOptionalFunction mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAliasFineGenericMod mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAliasFineAdded mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testNoStrictOptionalMethod mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAliasFineDeleted mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testNamedTupleUpdateNonRecursiveToRecursiveFine mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAliasFineGenericFunc mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testStrictOptionalModule mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAliasFineClassToAlias mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAliasFineForwardMod mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testStrictOptionalFunction mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAliasFineAliasToClass mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAliasFineForwardFunc mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testTupleTypeUpdateNonRecursiveToRecursiveFine mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testStrictOptionalMethod mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAliasFineChainedFunc mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAliasFineComponentDeleted mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testPerFileStrictOptionalModule mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAliasFineChainedClass mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAliasFineTargetDeleted mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testPerFileStrictOptionalModuleOnly mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAliasFineClassInFunction mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testTypeAliasUpdateNonRecursiveToRecursiveFine mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAliasFineNestedMod mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testPerFileStrictOptionalFunction mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAliasFineInitNormalMod mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAliasFineInitNormalFunc mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testPerFileStrictOptionalMethod mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAliasFineNestedFunc mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAliasFineInitGenericMod mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testTypeVarValuesFunction mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testTypedDictRefresh mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testTypeVarValuesClass mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAliasFineInitGenericFunc mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testTypeVarValuesMethod1 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAliasFineInitChainedMod mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testTypedDictUpdate mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAliasFineInitChainedFunc mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testTypeVarValuesMethod2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAliasFineNestedFuncDirect mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testNonePartialType1 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testTypeVarBoundFunction mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testNonePartialType2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testTypeVarBoundClass mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testTypedDictUpdate2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAliasFineNonGenericToGeneric mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testNonePartialType3 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testTypeVarValuesRuntime mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testNonePartialType4 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAliasFineGenericToNonGeneric mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testTypeVarBoundRuntime mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testChangeTypeVarToModule mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAliasFineChangedNumberOfTypeVars mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testGenericFineCallableNormal mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testTypedDictUpdate3 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testGenericFineCallableToNonGeneric mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testGenericFineCallableToGenericClass mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testChangeClassToModule mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testMakeClassNoLongerAbstract1 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testGenericFineCallableNamed mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testTypedDictUpdateGeneric mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testMakeClassNoLongerAbstract2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testGenericFineCallableInBound mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testChangeTypeVarToTypeAlias mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testGenericFineCallableAddedBound mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testRefreshClassBasedEnum mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testChangeTypeAliasToModule mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testFunctionToImportedFunctionAndRefreshUsingStaleDependency mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testSkippedClass1 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testRefreshClassBasedIntEnum mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testChangeTypeAliasToModuleUnqualified mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testMethodToVariableAndRefreshUsingStaleDependency mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testSkippedClass2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testChangeFunctionToVariableAndRefreshUsingStaleDependency mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testChangeGenericFunctionToVariable mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testClassBasedEnumPropagation1 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testChangeFunctionToTypeVarAndRefreshUsingStaleDependency mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testSkippedClass3 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testChangeGenericClassToVariable mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testChangeFunctionToModuleAndRefreshUsingStaleDependency mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testClassBasedEnumPropagation2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testChangeFunctionToTypeAliasAndRefreshUsingStaleDependency1 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testSkippedClass4 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testChangeGenericMethodToVariable mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testNewTypeDependencies1 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testRefreshFuncBasedEnum mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testChangeFunctionToTypeAliasAndRefreshUsingStaleDependency2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testRefreshNestedClassWithSelfReference mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testChangeFunctionToClassAndRefreshUsingStaleDependency mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testNewTypeDependencies2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testRefreshFuncBasedIntEnum mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testClassToVariableAndRefreshUsingStaleDependency mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testMultipleAssignment mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testNewTypeDependencies3 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testProtocolUpdateTypeInClass mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testFuncBasedEnumPropagation1 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testNamedTupleWithinFunction mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testMultipleLvalues mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testProtocolAddAttrInFunction mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testNoOpUpdateFineGrainedIncremental1 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testFuncBasedEnumPropagation2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testNamedTupleFallback mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testNoOpUpdateFineGrainedIncremental2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testNonExistentFileOnCommandLine1 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testProtocolRemoveAttrInClass mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testChangeTypeVarToFunction mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testReprocessEllipses1 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testNonExistentFileOnCommandLine2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testNonExistentFileOnCommandLine3 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testProtocolConcreteUpdateTypeFunction mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testReprocessEllipses2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testNonExistentFileOnCommandLine4 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testNonProtocolToProtocol mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testProtocolConcreteUpdateTypeMethodGeneric mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testNonExistentFileOnCommandLine5 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testInvalidateProtocolViaSuperClass mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testProtocolConcreteRemoveAttrVariable mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testDunderNewUpdatedMethod mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testProtocolInvalidateConcreteViaSuperClassUpdateType mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testReprocessCallableArg mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testDunderNewUpdatedSubclass mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testProtocolUpdateBaseGeneric mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testImplicitTuple1 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testProtocolInvalidateConcreteViaSuperClassAddAttr mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testDunderNewUpdatedAlias mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testProtocolConcreteUpdateBaseGeneric mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testProtocolInvalidateConcreteViaSuperClassRemoveAttr mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testImplicitTuple2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testDunderNewUpdatedCallable mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testProtocolChangeGeneric mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testDunderNewDefine mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testImplicitTuple3 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testTwoProtocolsTwoFilesCrossedUpdateType mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testProtocolToNonProtocol mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testDunderNewInsteadOfInit mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testProtocolsInvalidateByRemovingBase mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testCastConfusion mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testProtocolUpdateTypeInVariable mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testOverloadsRemovedOverload mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testProtocolsInvalidateByRemovingMetaclass mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testProtocolVsProtocolSubUpdated mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testProtocolUpdateTypeInFunction mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testOverloadsDeleted mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testOverloadedUpdateToClass mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testProtocolVsProtocolSuperUpdated mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testExtendedUnpacking mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testDepsFromOverloadUpdatedAttrRecheckImpl mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testOverloadsUpdatedTypeRecheckImplementation mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testProtocolVsProtocolSuperUpdated2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testUnpackInExpression1 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testOverloadsUpdatedTypeRechekConsistency mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testOverloadedMethodSupertype2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testProtocolVsProtocolSuperUpdated3 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testUnpackInExpression2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testOverloadsGenericTypevarUpdated mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testOverloadedInitSupertype mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testOverloadsGenericToNonGeneric mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testUnpackInExpression3 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testProtocolMultipleUpdates mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testOverloadedToNormalMethodMetaclass mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testOverloadsToNonOverloaded mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testWeAreCarefulWithBuiltinProtocols mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testYieldFrom mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAwaitAndAsyncDef mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testOverloadsUpdateFunctionToOverloaded mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testWeAreCarefullWithBuiltinProtocolsBase mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testFString mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testOverloadsSimpleFrom mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testLiskovFineVariableCleanDefInMethodNested mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testOverloadsSimpleToNested mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAsyncWith2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testLiskovFineVariableInFunctionClean mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAwaitAnd__await__ mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testImportOnTopOfAlias1 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testLiskovFineDecoratorClean mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testLiskovFineVariable mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testImportOnTopOfAlias2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::test__aiter__and__anext__ mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAddAbstractMethod mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testFakeOverloadCrash mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testLiskovFineVariableInFunction mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testMakeMethodNoLongerAbstract2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testFakeOverloadCrash2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testMakeClassAbstract mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testImplicitOptionalRefresh1 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testRefreshForWithTypeComment1 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testMakeMethodNoLongerAbstract1 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testLiskovFineDecorator mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testRefreshIgnoreErrors1 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testRefreshForWithTypeComment2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testRefreshIgnoreErrors2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testLiskovFineVariableClean mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testIdLikeDecoForwardCrash mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testFinalAddFinalMethodOverrideWithVarFine mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testLiskovFineVariableCleanDefInMethod mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testIdLikeDecoForwardCrashAlias mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testRefreshOptions mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testFinalAddFinalMethodOverrideOverloadFine mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testFinalAddFinalVarAssignFine mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testLiskovFineVariableCleanDefInMethodStar mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testNamedTupleFallbackModule mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testFinalAddFinalPropertyWithVarFine mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testFinalAddFinalVarOverrideFine mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testFinalBodyReprocessedAndStillFinalOverloaded2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testFinalBodyReprocessedAndStillFinal mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testNamedTupleForwardFunctionIndirectReveal mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testFinalAddFinalMethodOverrideFine mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testIfMypyUnreachableClass mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAliasForwardFunctionDirect mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testIfTypeCheckingUnreachableClass mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAliasForwardFunctionIndirect mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testLiteralFineGrainedChainedAliases mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testLiteralFineGrainedFunctionConversion mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testNamedTupleForwardFunctionDirect mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testLiteralFineGrainedVarConversion mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testLiteralFineGrainedChainedFunctionDefinitions mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testLiteralFineGrainedAlias mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testNamedTupleForwardFunctionIndirect mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testLiteralFineGrainedStringConversionPython3 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testReprocessModuleTopLevelWhileMethodDefinesAttrBothExplicitAndInClass mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testLiteralFineGrainedOverload mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testLiteralFineGrainedChainedTypeVarInference mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testReprocessModuleTopLevelWhileMethodDefinesAttrProtocol mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testReprocessModuleTopLevelWhileMethodDefinesAttr mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testLiteralFineGrainedChainedDefinitions mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testNewSemanticAnalyzerUpdateMethodAndClass mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testCheckReprocessedTargets mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testLiteralFineGrainedChainedViaFinal mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testInfiniteLoop mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testInlineConfigFineGrained1 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testErrorReportingNewAnalyzer mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testReprocessModuleTopLevelWhileMethodDefinesAttrExplicit mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testInlineConfigFineGrained2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testInfiniteLoop2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testWrongNumberOfArguments mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testStripNewAnalyzer mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testFileAddedAndImported mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testClassRedef mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testFileAddedAndImported2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testClassVariableOrderingRefresh mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testTypedDictCrashFallbackAfterDeletedMeet mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testAddAttributeThroughNewBaseClass mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testGenericChange2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testGenericChange1 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testGenericChange3 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testIsInstanceAdHocIntersectionFineGrainedIncrementalNoChange mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testIsInstanceAdHocIntersectionFineGrainedIncrementalIsInstanceChange mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testTypedDictCrashFallbackAfterDeletedJoin mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testIsInstanceAdHocIntersectionFineGrainedIncrementalUnreachaableToIntersection mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testIsInstanceAdHocIntersectionFineGrainedIncrementalIntersectionToUnreachable mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testIsInstanceAdHocIntersectionFineGrainedIncrementalUnderlyingObjChang mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testStubFixupIssues mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testDunderCall2 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testDunderCall1 mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testNoneAttribute mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testDunderCallAddition mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testStrictNoneAttribute mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testDataclassCheckTypeVarBoundsInReprocess mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testModuleAsProtocolImplementationFine mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testTypeVarTupleCached mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testUnpackKwargsUpdateFine mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testParamSpecCached
mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testBoundGenericMethodFine mypy/test/testfinegrained.py::FineGrainedSuite::fine-grained.test::testBoundGenericMethodParamSpecFine