diff --git a/pydantic/_internal/_generate_schema.py b/pydantic/_internal/_generate_schema.py index 91c317f766..34f0bd9d25 100644 --- a/pydantic/_internal/_generate_schema.py +++ b/pydantic/_internal/_generate_schema.py @@ -702,8 +702,6 @@ def _generate_dc_field_schema( ) def _common_field_schema(self, name: str, field_info: FieldInfo, decorators: DecoratorInfos) -> _CommonField: - assert field_info.annotation is not None, 'field_info.annotation should not be None when generating a schema' - source_type, annotations = field_info.annotation, field_info.metadata def set_discriminator(schema: CoreSchema) -> CoreSchema: diff --git a/tests/test_generics.py b/tests/test_generics.py index 197267dd37..fbd30abbc2 100644 --- a/tests/test_generics.py +++ b/tests/test_generics.py @@ -2477,3 +2477,13 @@ class Model(BaseModel): Model(f_value=(1, 'abc')) with pytest.raises(ValidationError): Model(f_value=('abc', True)) + + +def test_generic_none(): + T = TypeVar('T') + + class Container(BaseModel, Generic[T]): + value: T + + assert Container[type(None)](value=None).value is None + assert Container[None](value=None).value is None