diff --git a/mypy/checker.py b/mypy/checker.py
--- a/mypy/checker.py
+++ b/mypy/checker.py
@@ -6395,14 +6395,7 @@ def iterable_item_type(self, instance: Instance) -> Type:
             # in case there is no explicit base class.
             return item_type
         # Try also structural typing.
-        ret_type, _ = self.expr_checker.check_method_call_by_name(
-            "__iter__", instance, [], [], instance
-        )
-        ret_type = get_proper_type(ret_type)
-        if isinstance(ret_type, Instance):
-            iterator = map_instance_to_supertype(ret_type, self.lookup_typeinfo("typing.Iterator"))
-            item_type = iterator.args[0]
-        return item_type
+        return self.analyze_iterable_item_type_without_expression(instance, instance)[1]
 
     def function_type(self, func: FuncBase) -> FunctionLike:
         return function_type(func, self.named_type("builtins.function"))

diff --git a/test-data/unit/check-inference.test b/test-data/unit/check-inference.test
--- a/test-data/unit/check-inference.test
+++ b/test-data/unit/check-inference.test
@@ -380,6 +380,8 @@ class Nums(Iterable[int]):
     def __iter__(self): pass
     def __next__(self): pass
 a, b = Nums()
+reveal_type(a)  # N: Revealed type is "builtins.int"
+reveal_type(b)  # N: Revealed type is "builtins.int"
 if int():
     a = b = 1
 if int():
@@ -388,6 +390,37 @@ if int():
     b = '' # E: Incompatible types in assignment (expression has type "str", variable has type "int")
 [builtins fixtures/for.pyi]
 
+[case testInferringTypesFromIterableStructuralSubtyping1]
+from typing import Iterator
+class Nums:
+    def __iter__(self) -> Iterator[int]: pass
+a, b = Nums()
+reveal_type(a)  # N: Revealed type is "builtins.int"
+reveal_type(b)  # N: Revealed type is "builtins.int"
+if int():
+    a = b = 1
+if int():
+    a = '' # E: Incompatible types in assignment (expression has type "str", variable has type "int")
+if int():
+    b = '' # E: Incompatible types in assignment (expression has type "str", variable has type "int")
+[builtins fixtures/for.pyi]
+
+[case testInferringTypesFromIterableStructuralSubtyping2]
+from typing import Self
+class Nums:
+    def __iter__(self) -> Self: pass
+    def __next__(self) -> int: pass
+a, b = Nums()
+reveal_type(a)  # N: Revealed type is "builtins.int"
+reveal_type(b)  # N: Revealed type is "builtins.int"
+if int():
+    a = b = 1
+if int():
+    a = '' # E: Incompatible types in assignment (expression has type "str", variable has type "int")
+if int():
+    b = '' # E: Incompatible types in assignment (expression has type "str", variable has type "int")
+[builtins fixtures/tuple.pyi]
+
 
 -- Type variable inference for generic functions
 -- ---------------------------------------------

Unpacking an iterable with an `__iter__` method that returns `self` leads to variable being silently inferred as `Any`
This is similar to #14811, but still reproduces on `master` following https://github.com/python/mypy/commit/bed49ab3781f28be2a6cf5c6665934a8fa2bb5f2:

```python
from typing import TypeVar

T = TypeVar("T")

class Foo:
    count: int
    def __init__(self) -> None:
        self.count = 0
    def __iter__(self: T) -> T:
        return self
    def __next__(self) -> int:
        self.count += 1
        if self.count > 3:
            raise StopIteration
        return self.count

a, b, c = Foo()
reveal_type(a)  # note: Revealed type is "Any"
```

Mypy should have enough information here to infer that the type of `a` is `int`.

**Mypy versions tested on**
- mypy 1.2.0+dev.bed49ab3781f28be2a6cf5c6665934a8fa2bb5f2 (compiled: no)
- Also reproducible on mypy playground on mypy 1.0.0: https://mypy-play.net/?mypy=latest&python=3.11&gist=fcc3254474f3eda979e0412589379404

This one-line change fixes the issue:

```diff
--- a/mypy/checker.py
+++ b/mypy/checker.py
@@ -3633,7 +3633,7 @@ class TypeChecker(NodeVisitor[None], CheckerPluginInterface):
     ) -> None:
         rvalue_type = get_proper_type(rvalue_type)
         if self.type_is_iterable(rvalue_type) and isinstance(rvalue_type, Instance):
-            item_type = self.iterable_item_type(rvalue_type)
+            _, item_type = self.analyze_iterable_item_type_without_expression(rvalue_type, context)
```

But it causes this test to fail:

https://github.com/python/mypy/blob/bed49ab3781f28be2a6cf5c6665934a8fa2bb5f2/test-data/unit/check-inference.test#L377-L389

The test succeeds once again if we add annotations:

```diff
--- a/test-data/unit/check-inference.test
+++ b/test-data/unit/check-inference.test
@@ -375,10 +375,10 @@ def f(d: Any) -> None:
     b.x

 [case testInferringTypesFromIterable]
-from typing import Iterable
+from typing import Iterable, Iterator
 class Nums(Iterable[int]):
-    def __iter__(self): pass
-    def __next__(self): pass
+    def __iter__(self) -> Iterator[int]: pass
+    def __next__(self) -> int: pass
```

@sobolevn, do you think this would be a reasonable fix? It makes me wonder why we have the `iterable_item_type()` method at all, and whether other uses of this method in `checker.py` should also be converted to `analyze_iterable_item_type_without_expression()`
I can't tell whether the required change to `testInferringTypesFromIterable` would be a feature or a bug. Mypy usually infers that unannotated methods return `Any`. It feels weird to me that this test case is currently asserting that mypy should infer a non-`Any` type here, despite both `__iter__` and `__next__` being unannotated.
> It makes me wonder why we have the iterable_item_type() method at all, and whether other uses of this method in checker.py should also be converted to analyze_iterable_item_type_without_expression()

I don't really know. It was my first `Iterable`-related PR.

> I can't tell whether the required change to testInferringTypesFromIterable would be a feature or a bug

It is really hard to tell whether your solution is a bug or an improvement (sadly, python's type system is not documented enough).
Thanks! I guess I'll experiment with a broader refactor and see if anything (else) breaks :)
The test was introduced in 2013, in https://github.com/python/mypy/commit/6ecbd1fd15de2d538410de0e467c0d0ffd343560
mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferringLvarTypesInMultiDefWithNoneTypes mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testAmbiguousUnionContextAndMultipleInheritance2 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferSimpleGvarType mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testConstraintSolvingWithSimpleGenerics mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferringLvarTypesInNestedTupleAssignmentWithNoneTypes mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferSimpleLvarType mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testConstraintSolvingFailureWithSimpleGenerics mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testDictLiteral mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testLvarInitializedToVoid mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferringLvarTypesInMultiDefWithInvalidTuple mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testTypeInferenceWithCalleeDefaultArgs mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testSetLiteral mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferringLvarTypeFromArgument mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInvalidRvalueTypeInInferredMultipleLvarDefinition mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferringLvarTypeFromGvar mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testSetWithStarExpr mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testGenericFunctionInferenceWithMultipleInheritance mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInvalidRvalueTypeInInferredNestedTupleAssignment mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferringImplicitDynamicTypeForLvar mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testListLiteralWithFunctionsErasesNames mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testGenericFunctionInferenceWithMultipleInheritance2 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferringExplicitDynamicTypeForLvar mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferringMultipleLvarDefinitionWithListRvalue mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testGenericFunctionInferenceWithMultipleInheritance3 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testListLiteralWithSimilarFunctionsErasesName mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferringNestedTupleAssignmentWithListRvalue mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferringTupleTypeForLvar mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testListLiteralWithNameOnlyArgsDoesNotEraseNames mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testPrecedenceOfFirstBaseAsInferenceResult mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferringMultipleLvarDefinitionWithImplicitDynamicRvalue mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferringTupleTypeForLvarWithNones mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferenceOfFor1 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferringMultipleLvarDefinitionWithExplicitDynamicRvalue mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testNonOverloadedMapInference mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferenceOfFor2 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testGenericFunctionWithTypeTypeAsCallable mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferringTypesFromIterable mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferringGenericTypeForLvar mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferenceOfFor3 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferringFunctionTypeForLvar mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferringTypesFromIterableStructuralSubtyping1 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testUnionInference mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testForStatementInferenceWithVoid mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferringFunctionTypeForLvarFromTypeObject mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testCallableListJoinInference mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testReusingInferredForIndex mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferringLvarTypesInMultiDef mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testCallableMeetAndJoin mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testReusingInferredForIndex2 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferringLvarTypesInTupleAssignment mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferSimpleGenericFunction mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testReusingInferredForIndex3 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferringLvarTypesInNestedTupleAssignment1 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferringGenericFunctionTypeForLvar mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testUnionInferenceWithTypeVarValues mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testMultipleAssignmentWithPartialDefinition mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferringLvarTypesInNestedTupleAssignment2 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testUnderspecifiedInferenceResult mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testUnionContext mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testMultipleAssignmentWithPartialDefinition2 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferringLvarTypesInNestedListAssignment mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferenceWithMultipleConstraints mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testMultipleAssignmentWithPartialDefinition3 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testGenericFunctionSubtypingWithUnions mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferGlobalDefinedInBlock mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testAmbiguousUnionContextAndMultipleInheritance mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferListInitializedToEmptyAndNotAnnotatedInFunction mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferenceWithMultipleVariables mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testLambdaJoinWithDynamicConstructor mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferListInitializedToEmptyAndReadBeforeAppendInFunction mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testAssigningAnyStrToNone mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferDictInitializedToEmptyUsingUpdate mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testOrOperationWithGenericOperands mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferListInitializedToEmptyInClassBody mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferAttributeType mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferDictInitializedToEmptyUsingUpdateError mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testAccessGlobalVarBeforeItsTypeIsAvailable mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferAttributeTypeAndAssignInInit mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferListInitializedToEmptyAndNotAnnotatedInClassBody mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testAccessDataAttributeBeforeItsTypeIsAvailable mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferAttributeInInit mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferListInitializedToEmptyInMethod mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferDictInitializedToEmptyAndIncompleteTypeInUpdate mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferAttributeInInitUsingChainedAssignment mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testListWithDucktypeCompatibility mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferListInitializedToEmptyAndNotAnnotatedInMethod mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferLambdaType mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferDictInitializedToEmptyAndUpdatedFromMethod mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferListInitializedToEmptyInMethodViaAttribute mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testListWithDucktypeCompatibilityAndTransitivity mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferLambdaType2 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferDictInitializedToEmptyAndUpdatedFromMethodUnannotated mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferListInitializedToEmptyInClassBodyAndOverriden mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferListInitializedToEmpty mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testUninferableLambda mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferSetInitializedToEmpty mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testSpecialCaseEmptyListInitialization mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferListInitializedToEmptyUsingUpdate mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testUninferableLambdaWithTypeError mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferSetInitializedToEmptyUsingDiscard mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferListInitializedToEmptyAndNotAnnotated mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testSpecialCaseEmptyListInitialization2 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferLambdaNone mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferListInitializedToEmptyAndReadBeforeAppend mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferSetInitializedToEmptyUsingUpdate mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferListInitializedToEmptyAndAssigned mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testLambdaDefaultContext mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferListInitializedToEmptyAndIncompleteTypeInAppend mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferDictInitializedToEmpty mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferOrderedDictInitializedToEmpty mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferListInitializedToEmptyAndMultipleAssignment mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testLambdaVarargContext mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferAttributeInitializedToEmptyAndAppended mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferListInitializedToEmptyInFunction mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testLambdaDeferredSpecialCase mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferAttributeInitializedToEmptyAndAssignedItem mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testGvarPartiallyInitializedToNone mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testEmptyCollectionAssignedToVariableTwiceIncremental mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferAttributeInitializedToNoneAndAssignedClassBody mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferAttributeInitializedToNoneAndAssigned mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testPartiallyInitializedToNoneAndThenToPartialList mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferListTypeFromEmptyListAndAny mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testEmptyCollectionAssignedToVariableTwiceNoReadIncremental mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testPartiallyInitializedToNoneAndThenReadPartialList mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferAttributeInitializedToEmptyNonSelf mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferFromEmptyDictWhenUsingIn mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferAttributeInitializedToEmptyAndAssigned mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferAttributeInitializedToEmptyAndAssignedOtherMethod mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testPartiallyInitializedToNoneAndPartialListAndLeftPartial mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testGlobalInitializedToNoneSetFromMethod mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferAttributeInitializedToEmptyAndAppendedOtherMethod mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testPartiallyInitializedVariableDoesNotEscapeScope1 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferFromEmptyDictWhenUsingInSpecialCase mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testPartiallyInitializedVariableDoesNotEscapeScope2 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testPartialTypeErrorSpecialCase1 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferAttributeInitializedToEmptyAndAssignedItemOtherMethod mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testAttributePartiallyInitializedToNone mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferAttributeInitializedToNoneAndAssignedOtherMethod mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testPartialTypeErrorSpecialCase2 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testAttributePartiallyInitializedToNoneWithMissingAnnotation mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testPartialTypeErrorSpecialCase3 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferAttributeInitializedToEmptyAndAssignedClassBody mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferFromEmptyListWhenUsingInWithStrictEquality mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testGlobalInitializedToNoneSetFromFunction mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testPartialTypeErrorSpecialCase4 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferAttributeInitializedToEmptyAndAppendedClassBody mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferListTypeFromInplaceAdd mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testMultipassAndAccessVariableBeforeDefinition mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testMultipassAndPartialTypesSpecialCase2 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferSetTypeFromInplaceOr mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferAttributeInitializedToEmptyAndAssignedItemClassBody mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testMultipassAndAccessInstanceVariableBeforeDefinition mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testLocalVariablePartiallyInitializedToNone mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testMultipassAndDefineAttributeBasedOnNotReadyAttribute mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testMultipassAndPartialTypesSpecialCase3 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testMultipassAndTopLevelVariable mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testLocalVariablePartiallyTwiceInitializedToNone mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testMultipassAndDefineAttributeBasedOnNotReadyAttribute2 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testMultipassAndPartialTypesSpecialCase4 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testMultipassAndDecoratedMethod mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testLvarInitializedToNoneWithoutType mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testMultipassAndPartialTypesSpecialCase5 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testUnificationMultipleInheritance mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testMultipassAndPartialTypes mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testMultipassAndClassAttribute mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testUnificationEmptyDictLeft mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testUnificationMultipleInheritanceAmbiguous mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testMultipassAndPartialTypes2 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testMultipassAndMultipleFiles mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testUnificationEmptyListLeft mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testUnificationEmptyDictRight mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testForwardReferenceToDecoratedClassMethod mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testMultipassAndPartialTypes3 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testUnificationEmptyListRight mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testUnificationRedundantUnion mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testUnificationDictWithEmptyListLeft mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testUnificationEmptyListLeftInContext mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testMultipassAndPartialTypes4 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testNoCrashOnPartialVariable2 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testUnificationDictWithEmptyListRight mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testMultipassAndCircularDependency mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testUnificationEmptyListRightInContext mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testMisguidedSetItem mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testNoCrashOnPartialVariable3 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testUnificationEmptySetLeft mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testMultipassAndPartialTypesSpecialCase1 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testNoCrashOnPartialMember mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testLocalPartialTypesWithGlobalInitializedToNone mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferenceNestedTuplesFromGenericIterable mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testLocalPartialTypesWithClassAttributeInitializedToEmptyDict mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testLocalPartialTypesWithGlobalInitializedToNone2 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testNoCrashOnPartialVariable mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testDontMarkUnreachableAfterInferenceUninhabited mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testLocalPartialTypesWithGlobalInitializedToNone3 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testLocalPartialTypesWithGlobalInitializedToEmptyList mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testDontMarkUnreachableAfterInferenceUninhabited2 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testLocalPartialTypesWithGlobalInitializedToEmptyDict3 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testLocalPartialTypesWithGlobalInitializedToNoneStrictOptional mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testLocalPartialTypesWithGlobalInitializedToEmptyList2 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testDontMarkUnreachableAfterInferenceUninhabited3 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testLocalPartialTypesWithGlobalInitializedToNone4 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testLocalPartialTypesWithGlobalInitializedToEmptyList3 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testLocalPartialTypesWithNestedFunction mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testLocalPartialTypesWithInheritance2 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testLocalPartialTypesWithClassAttributeInitializedToNone mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testLocalPartialTypesWithNestedFunction2 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testLocalPartialTypesWithAnyBaseClass mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testLocalPartialTypesWithGlobalInitializedToEmptyDict mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testLocalPartialTypesAccessPartialNoneAttribute mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testLocalPartialTypesInMultipleMroItems mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testLocalPartialTypesAccessPartialNoneAttribute2 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testLocalPartialTypesWithNestedFunction3 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testLocalPartialTypesWithGlobalInitializedToEmptyDict2 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testUnusedTargetLocal mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testLocalPartialTypesWithInheritance3 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testLocalPartialTypesWithInheritance mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testUnusedTargetNotClass2 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testUnusedTargetNotGlobal mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testLocalPartialTypesBinderSpecialCase mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testUnderscoreClass mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testUnusedTargetNotClass mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testUnusedTargetTupleUnpacking mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testPermissiveAttributeOverride1 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testUnusedTargetForLoop mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testPermissiveAttributeOverride2 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testPermissiveGlobalContainer2 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testUnusedTargetMultipleTargets mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testUnusedTargetWithClause mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testPermissiveAttribute mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testUnusedTargetNotExceptClause mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testUnusedTargetNotImport mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testPermissiveGlobalContainer3 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testDontNeedAnnotationForCallable mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testIncompatibleInheritedAttributeNoStrictOptional mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testPermissiveGlobalContainer1 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testDeferralInNestedScopes mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testPermissiveGlobalContainer4 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInheritedAttributeStrictOptional mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInheritedAttributeNoStrictOptional mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testNeedAnnotationForCallable mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testDeferralOfMemberNested mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testUnionGenericWithBoundedVariable mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testUnionInvariantSubClassAndCovariantBase mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testPartialDefaultDict mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testPartialDefaultDictListValue mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testPartialDefaultDictSpecialCases mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testOptionalTypeVarAgainstOptional mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testPartialDefaultDictInconsistentValueTypes mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testPartialDefaultDictListValueStrictOptional mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testPartialDefaultDictSpecialCases2 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testPartialDefaultDictSpecialCase3 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferCallableReturningNone1 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferCallableReturningNone2 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferredTypeIsSimpleNestedList mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferredTypeIsSimpleNestedIterable mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferredTypeIsSimpleNestedListLoop mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferredTypeIsSimpleNestedIterableLoop mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testErasedTypeRuntimeCoverage mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testRegression11705_Strict mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testRegression11705_NoStrict mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testTupleContextFromIterable mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testUseSupertypeAsInferenceContext mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testUseSupertypeAsInferenceContextPartial mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testSuggestPep604AnnotationForPartialNone mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testUseSupertypeAsInferenceContextPartialErrorProperty mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testUseSupertypeAsInferenceContextConflict mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testUseSupertypeAsInferenceContextInvalidType mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testTupleContextFromIterable2 mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testUnionTypeCallableInference mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testUseSupertypeAsInferenceContextPartialError mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferSimpleLiteralInClassBodyCycle mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testNoPartialInSupertypeAsContext mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testJoinWithAnyFallback
mypy/test/testcheck.py::TypeCheckSuite::check-inference.test::testInferringTypesFromIterableStructuralSubtyping2