diff --git a/mypy/semanal.py b/mypy/semanal.py
--- a/mypy/semanal.py
+++ b/mypy/semanal.py
@@ -3647,7 +3647,7 @@ def analyze_lvalue(
                 has_explicit_value=has_explicit_value,
             )
         elif isinstance(lval, MemberExpr):
-            self.analyze_member_lvalue(lval, explicit_type, is_final)
+            self.analyze_member_lvalue(lval, explicit_type, is_final, has_explicit_value)
             if explicit_type and not self.is_self_member_ref(lval):
                 self.fail("Type cannot be declared in assignment to non-self attribute", lval)
         elif isinstance(lval, IndexExpr):
@@ -3824,7 +3824,9 @@ def analyze_tuple_or_list_lvalue(self, lval: TupleExpr, explicit_type: bool = Fa
                     has_explicit_value=True,
                 )
 
-    def analyze_member_lvalue(self, lval: MemberExpr, explicit_type: bool, is_final: bool) -> None:
+    def analyze_member_lvalue(
+        self, lval: MemberExpr, explicit_type: bool, is_final: bool, has_explicit_value: bool
+    ) -> None:
         """Analyze lvalue that is a member expression.
 
         Arguments:
@@ -3853,12 +3855,18 @@ def analyze_member_lvalue(self, lval: MemberExpr, explicit_type: bool, is_final:
                 and explicit_type
             ):
                 self.attribute_already_defined(lval.name, lval, cur_node)
-            # If the attribute of self is not defined in superclasses, create a new Var, ...
+            if self.type.is_protocol and has_explicit_value and cur_node is not None:
+                # Make this variable non-abstract, it would be safer to do this only if we
+                # are inside __init__, but we do this always to preserve historical behaviour.
+                if isinstance(cur_node.node, Var):
+                    cur_node.node.is_abstract_var = False
             if (
+                # If the attribute of self is not defined, create a new Var, ...
                 node is None
-                or (isinstance(node.node, Var) and node.node.is_abstract_var)
+                # ... or if it is defined as abstract in a *superclass*.
+                or (cur_node is None and isinstance(node.node, Var) and node.node.is_abstract_var)
                 # ... also an explicit declaration on self also creates a new Var.
-                # Note that `explicit_type` might has been erased for bare `Final`,
+                # Note that `explicit_type` might have been erased for bare `Final`,
                 # so we also check if `is_final` is passed.
                 or (cur_node is None and (explicit_type or is_final))
             ):

diff --git a/test-data/unit/check-dataclasses.test b/test-data/unit/check-dataclasses.test
--- a/test-data/unit/check-dataclasses.test
+++ b/test-data/unit/check-dataclasses.test
@@ -2037,3 +2037,16 @@ Foo(
     present_5=5,
 )
 [builtins fixtures/dataclasses.pyi]
+
+[case testProtocolNoCrash]
+from typing import Protocol, Union, ClassVar
+from dataclasses import dataclass, field
+
+DEFAULT = 0
+
+@dataclass
+class Test(Protocol):
+    x: int
+    def reset(self) -> None:
+        self.x = DEFAULT
+[builtins fixtures/dataclasses.pyi]
diff --git a/test-data/unit/check-protocols.test b/test-data/unit/check-protocols.test
--- a/test-data/unit/check-protocols.test
+++ b/test-data/unit/check-protocols.test
@@ -4054,3 +4054,14 @@ class P(Protocol):
 
 [file lib.py]
 class C: ...
+
+[case testAllowDefaultConstructorInProtocols]
+from typing import Protocol
+
+class P(Protocol):
+    x: int
+    def __init__(self, x: int) -> None:
+        self.x = x
+
+class C(P): ...
+C(0)  # OK

AssertionError: Internal error: too many class plugin hook passes
**Crash Report**

See the traceback.

**Traceback**

```
Traceback (most recent call last):
  File "D:\dro\bin\WPy64-31090\python-3.10.9.amd64\lib\runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "D:\dro\bin\WPy64-31090\python-3.10.9.amd64\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "D:\dro\bin\WPy64-31090\python-3.10.9.amd64\scripts\mypy.exe\__main__.py", line 7, in <module>
  File "D:\dro\bin\WPy64-31090\python-3.10.9.amd64\lib\site-packages\mypy\__main__.py", line 15, in console_entry
    main()
  File "mypy\main.py", line 95, in main
  File "mypy\main.py", line 174, in run_build
  File "mypy\build.py", line 194, in build
  File "mypy\build.py", line 277, in _build
  File "mypy\build.py", line 2923, in dispatch
  File "mypy\build.py", line 3320, in process_graph
  File "mypy\build.py", line 3415, in process_stale_scc
  File "mypy\semanal_main.py", line 99, in semantic_analysis_for_scc
  File "mypy\semanal_main.py", line 429, in apply_class_plugin_hooks
AssertionError: Internal error: too many class plugin hook passes
```

**To Reproduce**

```python
#!/usr/bin/env python
# -*- coding: utf-8; py-indent-offset:4 -*-
###############################################################################
from __future__ import annotations
from dataclasses import asdict, dataclass, field
from decimal import Context, Decimal, Inexact
from typing import ClassVar, Protocol


DecimalPlus = Decimal | str | int | float


@dataclass
class TargetSettings(Protocol):
    max: DecimalPlus
    min: DecimalPlus
    inc: DecimalPlus
    precision: int

    PLACES: Decimal = field(init=False, repr=False)
    INEXACT: ClassVar[Context] = Context(traps=[Inexact])

    def __post_init__(self) -> None:
        self.PLACES = PLACES = Decimal(10) ** -self.precision

        self.min = Decimal(self.min).quantize(PLACES)
        self.max = Decimal(self.max).quantize(PLACES)
        self.inc = Decimal(self.inc).quantize(PLACES)

    def is_valid(self, val: DecimalPlus) -> bool:
        try:
            val = Decimal(val).quantize(self.PLACES, context=self.INEXACT)
        except Inexact:
            return False  # more decimal places than allowed

        # mypy does not know attributes are Decimals at this stage
        if not (self.min <= val <= self.max):  # type: ignore
            return False

        return True  # all checks passed

```

**Your Environment**

- Mypy version used: 1.1.1
- Mypy command-line flags: `None`
- Mypy configuration options from `mypy.ini` (and other config files): `None`
- Python version used: `3.10.9`
- Operating system and version: `Windows 11 22621.1413`

**Additional Comment**

Let me say that I do believe that the concept of static type checking of `Union` is broken (again: *the concept*). In my very humble opinion as user, if I do declare something as a `Union` (either with the keyword or the `|` operator), `mypy` must believe that when the time comes, the variable/attribute declared as a Union, will contain one of the types.

Reporting errors like 
```
error: Unsupported operand types for <= ("Decimal" and "str")  [operator]
```

when the `Union` contains `Union[Decimal, str, int, float]` is in my very humble opinion: **wrong**. Such an error can be reported during *runtime*, but not during static analysis, because `mypy` has no way of knowing what the type at that stage contains. Reporting a "warning" would be ok. Reporting an "error" is an error itself.

No, as a user I am not in the mood of adding `cast` here and there and here-there to pollute the code, hence the need to add a `# type: ignore` to silence `mypy`.

Here's a smaller reproducer:

```python
from dataclasses import dataclass
from typing import Protocol

@dataclass
class TargetSettings(Protocol):
    min: int

    def __post_init__(self) -> None:
        self.min = int(self.min)
```

Combining `@dataclass` and `Protocol` is a strange thing to do and I'm not sure it should be allowed. However, mypy should not crash.
I do understand that `@dataclass` may make no sense for a `Protocol`, but this is, imho, bound to happen again, assuming typing becomes the mainstream development path.

How it happened in this case:

  - A `dataclass` ended up being used by a secondary class class and `mypy` was complaining that the referenced `dataclass` didn't have attribute X. Because it was defined later in the code.
  - The `dataclass` vital parts were taken out and put into a `Protocol` defined before the secondary class which means the secondary class can reference the protocol and be happy
  - Because the final class is a `dataclass` it seemed sensible to also have the `Protocol` class being decorated as a `dataclass`

mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesDefaults mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassOrderingWithoutEquality mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesBasic mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesInitVarIncremental mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesDefaultFactories mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesCustomInit mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassOrderingWithCustomMethods mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testNoComplainFieldNone mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesDefaultFactoryTypeChecking mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassDefaultsInheritance mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesBasicInheritance mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testNoComplainFieldNoneStrict mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesDefaultOrdering mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesDeepInheritance mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassGenerics mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDisallowUntypedWorksForward mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesOrderingKwOnly mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassUntypedGenericInheritance mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesMultipleInheritance mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDisallowUntypedWorksForwardBad mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesOrderingKwOnlyOnField mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassGenericSubtype mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesDeepInitVarInheritance mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testMemberExprWorksAsField mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesOrderingKwOnlyOnFieldFalse mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassGenericInheritance mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesOverriding mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesOrderingKwOnlyWithSentinel mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassOrderingDeferred mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassMultiGenericInheritance mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassFieldDeferred mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesOrderingKwOnlyWithSentinelAndFieldOverride mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesOverridingWithDefaults mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassGenericsClassmethod mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassFieldDeferredFrozen mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassIncompatibleOverrides mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesOrderingKwOnlyWithSentinelAndSubclass mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesForwardRefs mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassMultipleInheritance mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesOrderingKwOnlyWithMultipleSentinel mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testTypeInDataclassDeferredStar mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesInitVars mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassIncompatibleFrozenOverride mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesClassmethods mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDeferredDataclassInitSignature mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesFreezing mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesInitVarsAndDefer mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesOverloadsAndClassmethods mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDeferredDataclassInitSignatureSubclass mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testClassmethodShadowingFieldDoesNotCrash mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesInconsistentFreezing mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesNoInitInitVarInheritance mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesClassVars mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesFields mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassFactory mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesDefaultsIncremental mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testTypeAliasInDataclassDoesNotCrash mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesBadInit mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesInitVarOverride mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesDefaultsMroOtherFile mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassOrdering mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesMultiInit mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesInitVarNoOverride mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesInheritingDuplicateField mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassHasAttributeWithFields mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesMultiInitDefaults mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassInheritanceNoAnnotation mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesInitVarPostInitOverride mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassCallableFieldAccess mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassInheritanceNoAnnotation2 mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesAnyInherit mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassWithoutMatchArgs mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassCallableFieldAssignment mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testSimpleProtocolOneAbstractMethod mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesCallableFrozen mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassWithMatchArgsOldVersion mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolMethodBodies mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassFieldDoesNotFailOnKwargsUnpacking mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testSimpleProtocolOneMethodOverride mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassInFunctionDoesNotCrash mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testFinalInDataclass mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassFieldWithPositionalArguments mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testSimpleProtocolTwoMethodsMerge mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassFieldsProtocol mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassesMultipleInheritanceWithNonDataclass mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testSimpleProtocolTwoMethodsExtend mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassFieldWithTypedDictUnpacking mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolMethodVsAttributeErrors mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassTypeAnnotationAliasUpdated mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassGenericInheritance2 mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolMethodVsAttributeErrors2 mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassWithSlotsArg mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testCannotAssignNormalToProtocol mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassSelfType mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassInheritOptionalType mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassWithSlotsDef mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testIndependentProtocolSubtyping mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testNoCrashOnNestedGenericCallable mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassWithSlotsConflict mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassGenericInheritanceSpecialCase1 mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testNoneDisablesProtocolImplementation mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testNoneDisablesProtocolSubclassingWithStrictOptional mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassWithSlotsArgBefore310 mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testNoCrashOnSelfWithForwardRefGenericDataclass mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassGenericInheritanceSpecialCase2 mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolsWithNoneAndStrictOptional mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testBasicSemanalErrorsInProtocols mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testSlotsDefinitionWithTwoPasses1 mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testIfConditionsInDefinition mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassGenericWithBound mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProhibitSelfDefinitionInProtocols mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testSlotsDefinitionWithTwoPasses2 mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassGenericBoundToInvalidTypeVarDoesNotCrash mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolAndRuntimeAreDefinedAlsoInTypingExtensions mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testSlotsDefinitionWithTwoPasses3 mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassInitVarCannotBeSet mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolsCannotInheritFromNormal mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testGenericMethodWithProtocol mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassCheckTypeVarBounds mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testSlotsDefinitionWithTwoPasses4 mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testDataclassWithMatchArgs mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testGenericMethodWithProtocol2 mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolVarianceWithUnusedVariable mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testCannotInstantiateProtocol mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testCannotInstantiateAbstractMethodExplicitProtocolSubtypes mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testAutomaticProtocolVariance mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testCannotInstantiateAbstractVariableExplicitProtocolSubtypes mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testSimpleProtocolOneMethod mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolVarianceWithCallableAndList mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testGenericProtocolsInference1 mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolConstraintsUnsolvableWithSelfAnnotation1 mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolAttrAccessDecoratedGetAttrDunder mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testClassVarsInProtocols mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolGenericInference2 mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolConstraintsUnsolvableWithSelfAnnotation2 mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testPropertyInProtocols mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testSubtleBadVarianceInProtocols mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolGenericInferenceCovariant mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolConstraintsUnsolvableWithSelfAnnotation3 mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testClassVarProtocolImmutable mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testRecursiveProtocols1 mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testCannotInstantiateProtocolWithOverloadedUnimplementedMethod mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testSettablePropertyInProtocols mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testUnrealtedGenericProtolsEquivalent mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testCanUseOverloadedImplementationsInProtocols mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testRecursiveProtocols2 mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testFinalAttributeProtocol mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testGenericSubProtocols mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolsWithIdenticalOverloads mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testStaticAndClassMethodsInProtocols mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testRecursiveProtocolSubtleMismatch mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testGenericSubProtocolsExtensionInvariant mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolsWithIncompatibleOverloads mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testOverloadedMethodsInProtocols mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testMutuallyRecursiveProtocols mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testGenericSubProtocolsExtensionCovariant mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testMeetProtocolWithNormal mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testJoinProtocolWithProtocol mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testMutuallyRecursiveProtocolsTypesWithSubteMismatch mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testSelfTypesWithProtocolsBehaveAsWithNominal mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testMutuallyRecursiveProtocolsTypesWithSubteMismatchWriteable mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testJoinOfIncompatibleProtocols mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testInferProtocolFromProtocol mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testBadVarianceInProtocols mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testTwoUncomfortablyIncompatibleProtocolsWithoutRunningInIssue9771 mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testJoinProtocolWithNormal mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testOverloadOnProtocol mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testInstantiationProtocolInTypeForClassMethods mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testMeetProtocolWithProtocol mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testHashable mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testMeetOfIncompatibleProtocols mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testSimpleRuntimeProtocolCheck mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testIterableProtocolOnClass mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testBasicUnionsOfProtocols mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testUnionsOfNormalClassesWithProtocols mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testIterableProtocolOnMetaclass mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testRuntimeIterableProtocolCheck mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testInstantiationProtocolInTypeForFunctions mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testClassesGetattrWithProtocols mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testInstantiationProtocolInTypeForAliases mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testImplicitTypesInProtocols mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testMoreComplexCallableStructuralSubtyping mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testInstantiationProtocolInTypeForVariables mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolIncompatibilityWithGenericMethod mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testConcreteClassesInProtocolsIsInstance mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testStructuralSupportForPartial mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolIncompatibilityWithGenericMethodBounded mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolIncompatibilityWithManyOverloads mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolIncompatibilityWithManyConflicts mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testStructuralInferenceForCallable mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testConcreteClassesUnionInProtocolsIsInstance mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testBasicSizedProtocol mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolIncompatibilityWithUnionType mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolIncompatibilityWithGenericRestricted mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testBasicTupleStructuralSubtyping mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testBasicSupportsIntProtocol mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testDontShowNotesForTupleAndIterableProtocol mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testObjectAllowedInProtocolBases mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testAnyWithProtocols mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testNotManyFlagConflitsShownInProtocols mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testBasicNamedTupleStructuralSubtyping mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testNoneSubtypeOfEmptyProtocol mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testErrorsForProtocolsInDifferentPlaces mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testNoneSubtypeOfAllProtocolsWithoutStrictOptional mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testBasicCallableStructuralSubtyping mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolsMoreConflictsNotShown mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testNoneSubtypeOfEmptyProtocolStrict mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testCallableImplementsProtocolGeneric mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testCallableImplementsProtocolArgName mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolNotesForComplexSignatures mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testCallableProtocolVsProtocol mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testCallableImplementsProtocolGenericTight mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testOnlyMethodProtocolUsableWithIsSubclass mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testJoinProtocolCallback mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testCallableImplementsProtocolGenericNotGeneric mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testCallableImplementsProtocol mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testMeetProtocolCallback mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolsAlwaysABCs mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testCallableImplementsProtocolOverload mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolWithSlots mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testCallbackProtocolFunctionAttributesSubtyping mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolVarianceAfterDecorators mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testCallableImplementsProtocolExtraNote mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testNamedTupleWithNoArgsCallableField mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testCallbackProtocolFunctionAttributesInference mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testNamedTupleWithManyArgsCallableField mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testNoneVsProtocol mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testMatchProtocolAgainstOverloadWithMultipleMatchingItems mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testPartialAttributeNoneType mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testPartialTypeProtocol mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testEmptyBodyImplicitlyAbstractProtocol mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testPartialTypeProtocolHashable mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testEmptyBodyImplicitlyAbstractProtocolProperty mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testLiteralsAgainstProtocols mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testPartialAttributeNoneTypeStrictOptional mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolClassObjectAttribute mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testEmptyBodyImplicitlyAbstractProtocolStub mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testEmptyBodyVariationsImplicitlyAbstractProtocol mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolAndTypeVariableSpecialCase mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolClassObjectClassVarRejected mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolClassObjectInstanceMethod mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testEmptyBodyNoneCompatibleProtocol mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolClassObjectPropertyRejected mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolClassObjectInstanceMethodArg mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testEmptyBodyWithFinal mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolClassObjectGenericInstanceMethod mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testMatchProtocolAgainstOverloadWithAmbiguity mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolClassObjectInstanceMethodOverloaded mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolWithNestedClass mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolClassObjectClassMethod mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolClassObjectGenericClassMethod mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolClassObjectSelfTypeInstanceMethod mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolClassObjectAttributeAndCall mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolClassObjectStaticMethod mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolClassObjectSelfTypeClassMethod mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolClassObjectCallableError mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolClassObjectPureCallback mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolTypeTypeAttribute mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolTypeTypeClassMethod mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolTypeTypeInstanceMethod mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolTypeTypeSelfTypeInstanceMethod mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolClassObjectInference mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolTypeTypeInference mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testTypeAliasInProtocolBody mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testTypeVarInProtocolBody mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testModuleAsProtocolImplementationInference mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testModuleAsProtocolImplementation mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testModuleAsProtocolImplementationClassObject mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testModuleAsProtocolImplementationTypeAlias mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testModuleAsProtocolImplementationClassVar mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testModuleAsProtocolImplementationFinal mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testModuleAsProtocolRedefinitionTopLevel mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testModuleAsProtocolRedefinitionImportFrom mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolSelfTypeNewSyntaxSubProtocol mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolSelfTypeNewSyntax mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolClassVarSelfType mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testInferenceViaTypeTypeMetaclass mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testProtocolImportNotMember mypy/test/testcheck.py::TypeCheckSuite::check-protocols.test::testAllowDefaultConstructorInProtocols
mypy/test/testcheck.py::TypeCheckSuite::check-dataclasses.test::testProtocolNoCrash