Repository: typeddjango/django-stubs

Issue:
Support mypy 0.950
mypy 0.950 was released a short while ago (https://github.com/python/mypy/releases/tag/v0.950).

`django-stubs` currently enforces a version less than 0.950 (https://github.com/typeddjango/django-stubs/blob/master/setup.py#L23), please enable support for 0.950.


Discussion:

Resolving patch:
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -20,7 +20,7 @@ def find_stub_files(name: str) -> List[str]:
     readme = f.read()
 
 dependencies = [
-    "mypy>=0.930,<0.950",
+    "mypy>=0.930,<0.960",
     "django",
     "django-stubs-ext>=0.4.0",
     "tomli",


Test patch:
diff --git a/tests/typecheck/db/test_connection.yml b/tests/typecheck/db/test_connection.yml
--- a/tests/typecheck/db/test_connection.yml
+++ b/tests/typecheck/db/test_connection.yml
@@ -7,7 +7,7 @@
 -   case: raw_connections
     main: |
       from django.db import connections
-      reveal_type(connections["test"])  # N: Revealed type is "django.db.backends.base.base.BaseDatabaseWrapper*"
+      reveal_type(connections["test"])  # N: Revealed type is "django.db.backends.base.base.BaseDatabaseWrapper"
       for connection in connections.all():
         with connection.cursor() as cursor:
           reveal_type(cursor)  # N: Revealed type is "django.db.backends.utils.CursorWrapper"
diff --git a/tests/typecheck/fields/test_base.yml b/tests/typecheck/fields/test_base.yml
--- a/tests/typecheck/fields/test_base.yml
+++ b/tests/typecheck/fields/test_base.yml
@@ -2,11 +2,11 @@
     main: |
         from myapp.models import User
         user = User(small_int=1, name='user', slug='user', text='user')
-        reveal_type(user.id)  # N: Revealed type is "builtins.int*"
-        reveal_type(user.small_int)  # N: Revealed type is "builtins.int*"
-        reveal_type(user.name)  # N: Revealed type is "builtins.str*"
-        reveal_type(user.slug)  # N: Revealed type is "builtins.str*"
-        reveal_type(user.text)  # N: Revealed type is "builtins.str*"
+        reveal_type(user.id)  # N: Revealed type is "builtins.int"
+        reveal_type(user.small_int)  # N: Revealed type is "builtins.int"
+        reveal_type(user.name)  # N: Revealed type is "builtins.str"
+        reveal_type(user.slug)  # N: Revealed type is "builtins.str"
+        reveal_type(user.text)  # N: Revealed type is "builtins.str"
     installed_apps:
         - myapp
     files:
@@ -25,9 +25,9 @@
     main: |
         from myapp.models import Booking
         booking = Booking()
-        reveal_type(booking.id)  # N: Revealed type is "builtins.int*"
+        reveal_type(booking.id)  # N: Revealed type is "builtins.int"
         reveal_type(booking.time_range)  # N: Revealed type is "Any"
-        reveal_type(booking.some_decimal)  # N: Revealed type is "decimal.Decimal*"
+        reveal_type(booking.some_decimal)  # N: Revealed type is "decimal.Decimal"
     installed_apps:
         - myapp
     files:
@@ -47,7 +47,7 @@
     disable_cache: true
     main: |
         from myapp.models import User
-        reveal_type(User().id)  # N: Revealed type is "builtins.int*"
+        reveal_type(User().id)  # N: Revealed type is "builtins.int"
     installed_apps:
         - myapp
     files:
@@ -62,7 +62,7 @@
     disable_cache: true
     main: |
         from myapp.models import User
-        reveal_type(User().my_pk)  # N: Revealed type is "builtins.int*"
+        reveal_type(User().my_pk)  # N: Revealed type is "builtins.int"
         User().id  # E: "User" has no attribute "id"
     installed_apps:
         - myapp
@@ -97,7 +97,7 @@
         MyModel(notnulltext=None)  # E: Incompatible type for "notnulltext" of "MyModel" (got "None", expected "Union[str, int, Combinable]")
         MyModel(notnulltext="")
         MyModel().notnulltext = None  # E: Incompatible types in assignment (expression has type "None", variable has type "Union[str, int, Combinable]")
-        reveal_type(MyModel().notnulltext)  # N: Revealed type is "builtins.str*"
+        reveal_type(MyModel().notnulltext)  # N: Revealed type is "builtins.str"
     installed_apps:
         - myapp
     files:
@@ -133,7 +133,7 @@
 -   case: fields_inside_mixins_used_in_model_subclasses_resolved_as_primitives
     main: |
         from myapp.models import MyModel, AuthMixin
-        reveal_type(MyModel().username)  # N: Revealed type is "builtins.str*"
+        reveal_type(MyModel().username)  # N: Revealed type is "builtins.str"
     installed_apps:
         - myapp
     files:
@@ -156,10 +156,10 @@
         class Book(models.Model):
             published = cast(models.Field[Year, Year], models.IntegerField())
         book = Book()
-        reveal_type(book.published)  # N: Revealed type is "main.Year*"
+        reveal_type(book.published)  # N: Revealed type is "main.Year"
         book.published = 2006  # E: Incompatible types in assignment (expression has type "int", variable has type "Year")
         book.published = Year(2006)
-        reveal_type(book.published)  # N: Revealed type is "main.Year*"
+        reveal_type(book.published)  # N: Revealed type is "main.Year"
         def accepts_int(arg: int) -> None: ...
         accepts_int(book.published)
 
@@ -179,4 +179,4 @@
             small = models.SmallAutoField(primary_key=True)
         obj = MyModel()
 
-        reveal_type(obj.small) # N: Revealed type is "builtins.int*"
+        reveal_type(obj.small) # N: Revealed type is "builtins.int"
diff --git a/tests/typecheck/fields/test_nullable.yml b/tests/typecheck/fields/test_nullable.yml
--- a/tests/typecheck/fields/test_nullable.yml
+++ b/tests/typecheck/fields/test_nullable.yml
@@ -34,7 +34,7 @@
 -   case: nullable_field_with_strict_optional_true
     main: |
         from myapp.models import MyModel
-        reveal_type(MyModel().text)  # N: Revealed type is "builtins.str*"
+        reveal_type(MyModel().text)  # N: Revealed type is "builtins.str"
         reveal_type(MyModel().text_nullable)  # N: Revealed type is "Union[builtins.str, None]"
         MyModel().text = None  # E: Incompatible types in assignment (expression has type "None", variable has type "Union[str, int, Combinable]")
         MyModel().text_nullable = None
diff --git a/tests/typecheck/fields/test_postgres_fields.yml b/tests/typecheck/fields/test_postgres_fields.yml
--- a/tests/typecheck/fields/test_postgres_fields.yml
+++ b/tests/typecheck/fields/test_postgres_fields.yml
@@ -2,7 +2,7 @@
     main: |
         from myapp.models import User
         user = User(array=[])
-        reveal_type(user.array)  # N: Revealed type is "builtins.list*[Any]"
+        reveal_type(user.array)  # N: Revealed type is "builtins.list[Any]"
     installed_apps:
         - myapp
     files:
@@ -19,8 +19,8 @@
     main: |
         from myapp.models import User
         user = User()
-        reveal_type(user.members)  # N: Revealed type is "builtins.list*[builtins.int]"
-        reveal_type(user.members_as_text)  # N: Revealed type is "builtins.list*[builtins.str]"
+        reveal_type(user.members)  # N: Revealed type is "builtins.list[builtins.int]"
+        reveal_type(user.members_as_text)  # N: Revealed type is "builtins.list[builtins.str]"
     installed_apps:
         - myapp
     files:
diff --git a/tests/typecheck/fields/test_related.yml b/tests/typecheck/fields/test_related.yml
--- a/tests/typecheck/fields/test_related.yml
+++ b/tests/typecheck/fields/test_related.yml
@@ -2,7 +2,7 @@
     main: |
         from myapp.models import Book, Publisher
         book = Book()
-        reveal_type(book.publisher)  # N: Revealed type is "myapp.models.Publisher*"
+        reveal_type(book.publisher)  # N: Revealed type is "myapp.models.Publisher"
         publisher = Publisher()
         reveal_type(publisher.books)  # N: Revealed type is "django.db.models.manager.RelatedManager[myapp.models.Book]"
     installed_apps:
@@ -22,8 +22,8 @@
     main: |
         from myapp.models import Book
         book = Book()
-        reveal_type(book.publisher_id)  # N: Revealed type is "builtins.int*"
-        reveal_type(book.owner_id)  # N: Revealed type is "builtins.int*"
+        reveal_type(book.publisher_id)  # N: Revealed type is "builtins.int"
+        reveal_type(book.owner_id)  # N: Revealed type is "builtins.int"
     installed_apps:
         - django.contrib.auth
         - myapp
@@ -42,8 +42,8 @@
     main: |
         from myapp.models import Book, Publisher
         book = Book()
-        reveal_type(book.publisher)  # N: Revealed type is "myapp.models.Publisher*"
-        reveal_type(book.publisher2)  # N: Revealed type is "myapp.models.Publisher*"
+        reveal_type(book.publisher)  # N: Revealed type is "myapp.models.Publisher"
+        reveal_type(book.publisher2)  # N: Revealed type is "myapp.models.Publisher"
 
         publisher = Publisher()
         reveal_type(publisher.books)  # N: Revealed type is "django.db.models.manager.RelatedManager[myapp.models.Book]"
@@ -66,7 +66,7 @@
     main: |
         from myapp2.models import Book
         book = Book()
-        reveal_type(book.publisher)  # N: Revealed type is "myapp.models.Publisher*"
+        reveal_type(book.publisher)  # N: Revealed type is "myapp.models.Publisher"
     installed_apps:
         - myapp
         - myapp2
@@ -88,7 +88,7 @@
     main: |
         from myapp.models import User, Profile
         reveal_type(User().profile)  # N: Revealed type is "myapp.models.Profile"
-        reveal_type(Profile().user)  # N: Revealed type is "myapp.models.User*"
+        reveal_type(Profile().user)  # N: Revealed type is "myapp.models.User"
     installed_apps:
         - myapp
     files:
@@ -197,7 +197,7 @@
 -   case: models_imported_inside_init_file_one_to_one_field
     main: |
         from myapp2.models import Profile
-        reveal_type(Profile().user)  # N: Revealed type is "myapp.models.user.User*"
+        reveal_type(Profile().user)  # N: Revealed type is "myapp.models.user.User"
         reveal_type(Profile().user.profile)  # N: Revealed type is "myapp2.models.Profile"
     installed_apps:
         - myapp
@@ -223,7 +223,7 @@
 -   case: models_triple_circular_reference
     main: |
         from myapp.models import App
-        reveal_type(App().owner)  # N: Revealed type is "myapp.models.user.User*"
+        reveal_type(App().owner)  # N: Revealed type is "myapp.models.user.User"
         reveal_type(App().owner.profile)  # N: Revealed type is "myapp.models.profile.Profile"
     installed_apps:
         - myapp
@@ -253,7 +253,7 @@
 -   case: many_to_many_field_converts_to_queryset_of_model_type
     main: |
         from myapp.models import App, Member
-        reveal_type(Member().apps)  # N: Revealed type is "django.db.models.manager.RelatedManager*[myapp.models.App]"
+        reveal_type(Member().apps)  # N: Revealed type is "django.db.models.manager.RelatedManager[myapp.models.App]"
         reveal_type(App().members)  # N: Revealed type is "django.db.models.manager.RelatedManager[myapp.models.Member]"
     installed_apps:
         - myapp
@@ -270,7 +270,7 @@
 -   case: many_to_many_works_with_string_if_imported
     main: |
         from myapp.models import Member
-        reveal_type(Member().apps)  # N: Revealed type is "django.db.models.manager.RelatedManager*[myapp2.models.App]"
+        reveal_type(Member().apps)  # N: Revealed type is "django.db.models.manager.RelatedManager[myapp2.models.App]"
     installed_apps:
         - myapp
         - myapp2
@@ -291,7 +291,7 @@
 -   case: foreign_key_with_self
     main: |
         from myapp.models import User
-        reveal_type(User().parent)  # N: Revealed type is "myapp.models.User*"
+        reveal_type(User().parent)  # N: Revealed type is "myapp.models.User"
     installed_apps:
         - myapp
     files:
@@ -305,7 +305,7 @@
 -   case: many_to_many_with_self
     main: |
         from myapp.models import User
-        reveal_type(User().friends)  # N: Revealed type is "django.db.models.manager.RelatedManager*[myapp.models.User]"
+        reveal_type(User().friends)  # N: Revealed type is "django.db.models.manager.RelatedManager[myapp.models.User]"
     installed_apps:
         - myapp
     files:
@@ -354,14 +354,14 @@
         import datetime
         from myapp.models import Book, Book2
 
-        reveal_type(Book().publisher_id)  # N: Revealed type is "builtins.str*"
+        reveal_type(Book().publisher_id)  # N: Revealed type is "builtins.str"
         Book(publisher_id=1)
         Book(publisher_id='hello')
         Book(publisher_id=datetime.datetime.now())  # E: Incompatible type for "publisher_id" of "Book" (got "datetime", expected "Union[str, int, Combinable]")
         Book.objects.create(publisher_id=1)
         Book.objects.create(publisher_id='hello')
 
-        reveal_type(Book2().publisher_id)  # N: Revealed type is "builtins.int*"
+        reveal_type(Book2().publisher_id)  # N: Revealed type is "builtins.int"
         Book2(publisher_id=1)
         Book2(publisher_id=[])  # E: Incompatible type for "publisher_id" of "Book2" (got "List[Any]", expected "Union[float, int, str, Combinable]")
         Book2.objects.create(publisher_id=1)
@@ -387,7 +387,7 @@
 -   case: if_model_is_defined_as_name_of_the_class_look_for_it_in_the_same_app
     main: |
         from myapp.models import Book
-        reveal_type(Book().publisher)  # N: Revealed type is "myapp.models.publisher.Publisher*"
+        reveal_type(Book().publisher)  # N: Revealed type is "myapp.models.publisher.Publisher"
     installed_apps:
         - myapp
     files:
@@ -434,7 +434,7 @@
     main: |
         from myapp.models import Book, Publisher
         book = Book()
-        reveal_type(book.publisher)  # N: Revealed type is "myapp.models.Publisher*"
+        reveal_type(book.publisher)  # N: Revealed type is "myapp.models.Publisher"
 
         publisher = Publisher()
         reveal_type(publisher.books)
@@ -461,7 +461,7 @@
     main: |
         from myapp.models import Book
         book = Book()
-        reveal_type(book.publisher)  # N: Revealed type is "myapp.models.Publisher*"
+        reveal_type(book.publisher)  # N: Revealed type is "myapp.models.Publisher"
     custom_settings: |
         INSTALLED_APPS = ('django.contrib.contenttypes', 'myapp')
         BOOK_RELATED_MODEL = 'myapp.Publisher'
@@ -481,7 +481,7 @@
 -   case: foreign_key_with_custom_app_name
     main: |
         from myapp.models import MyMain
-        reveal_type(MyMain().user)  # N: Revealed type is "myapp2.models.MyUser*"
+        reveal_type(MyMain().user)  # N: Revealed type is "myapp2.models.MyUser"
     installed_apps:
         - myapp
         - myapp2.apps.MyApp2Config
@@ -509,7 +509,7 @@
 -   case: related_field_to_extracted_from_function
     main: |
         from myapp.models import Profile
-        reveal_type(Profile().user)  # N: Revealed type is "myapp.models.User*"
+        reveal_type(Profile().user)  # N: Revealed type is "myapp.models.User"
     installed_apps:
         - myapp
     files:
@@ -576,8 +576,8 @@
 -   case: test_foreign_key_from_superclass_inherits_correctly
     main: |
         from myapp.models import MyUser, Book, Article, LibraryEntity
-        reveal_type(Book().registered_by_user)  # N: Revealed type is "myapp.models.MyUser*"
-        reveal_type(Article().registered_by_user)  # N: Revealed type is "myapp.models.MyUser*"
+        reveal_type(Book().registered_by_user)  # N: Revealed type is "myapp.models.MyUser"
+        reveal_type(Article().registered_by_user)  # N: Revealed type is "myapp.models.MyUser"
 
         user = MyUser()
         reveal_type(user.book_set) # N: Revealed type is "django.db.models.manager.RelatedManager[myapp.models.Book]"
@@ -604,16 +604,16 @@
 -   case: test_foreign_key_from_superclass_inherits_correctly_when_also_inheriting_manager
     main: |
         from myapp.models import MyUser, Book, Article, LibraryEntity
-        reveal_type(Book().registered_by_user)  # N: Revealed type is "myapp.models.MyUser*"
-        reveal_type(Article().registered_by_user)  # N: Revealed type is "myapp.models.MyUser*"
+        reveal_type(Book().registered_by_user)  # N: Revealed type is "myapp.models.MyUser"
+        reveal_type(Article().registered_by_user)  # N: Revealed type is "myapp.models.MyUser"
 
         user = MyUser()
         reveal_type(user.book_set) # N: Revealed type is "myapp.models.Book_RelatedManager"
         reveal_type(user.article_set) # N: Revealed type is "myapp.models.Article_RelatedManager"
-        reveal_type(user.book_set.add)  # N: Revealed type is "def (*objs: Union[myapp.models.Book*, builtins.int], *, bulk: builtins.bool =)"
-        reveal_type(user.article_set.add)  # N: Revealed type is "def (*objs: Union[myapp.models.Article*, builtins.int], *, bulk: builtins.bool =)"
-        reveal_type(user.book_set.filter)  # N: Revealed type is "def (*args: Any, **kwargs: Any) -> myapp.models.LibraryEntityQuerySet[myapp.models.Book*]"
-        reveal_type(user.article_set.filter)  # N: Revealed type is "def (*args: Any, **kwargs: Any) -> myapp.models.LibraryEntityQuerySet[myapp.models.Article*]"
+        reveal_type(user.book_set.add)  # N: Revealed type is "def (*objs: Union[myapp.models.Book, builtins.int], *, bulk: builtins.bool =)"
+        reveal_type(user.article_set.add)  # N: Revealed type is "def (*objs: Union[myapp.models.Article, builtins.int], *, bulk: builtins.bool =)"
+        reveal_type(user.book_set.filter)  # N: Revealed type is "def (*args: Any, **kwargs: Any) -> myapp.models.LibraryEntityQuerySet[myapp.models.Book]"
+        reveal_type(user.article_set.filter)  # N: Revealed type is "def (*args: Any, **kwargs: Any) -> myapp.models.LibraryEntityQuerySet[myapp.models.Article]"
         reveal_type(user.book_set.queryset_method())  # N: Revealed type is "builtins.int"
         reveal_type(user.article_set.queryset_method())  # N: Revealed type is "builtins.int"
     installed_apps:
@@ -665,8 +665,8 @@
 -   case: resolve_primary_keys_for_foreign_keys_with_abstract_self_model
     main: |
         from myapp.models import User
-        reveal_type(User().parent)  # N: Revealed type is "myapp.models.User*"
-        reveal_type(User().parent_id)  # N: Revealed type is "builtins.int*"
+        reveal_type(User().parent)  # N: Revealed type is "myapp.models.User"
+        reveal_type(User().parent_id)  # N: Revealed type is "builtins.int"
 
         reveal_type(User().parent2)  # N: Revealed type is "Union[myapp.models.User, None]"
         reveal_type(User().parent2_id)  # N: Revealed type is "Union[builtins.int, None]"
@@ -690,11 +690,11 @@
     main: |
         from myapp.models import User, Order, Product
         reveal_type(User().orders)  # N: Revealed type is "myapp.models.Order_RelatedManager"
-        reveal_type(User().orders.get())  # N: Revealed type is "myapp.models.Order*"
+        reveal_type(User().orders.get())  # N: Revealed type is "myapp.models.Order"
         reveal_type(User().orders.manager_method())  # N: Revealed type is "builtins.int"
         reveal_type(Product.objects.queryset_method())  # N: Revealed type is "builtins.int"
         reveal_type(Order().products)  # N: Revealed type is "myapp.models.Product_RelatedManager"
-        reveal_type(Order().products.get())  # N: Revealed type is "myapp.models.Product*"
+        reveal_type(Order().products.get())  # N: Revealed type is "myapp.models.Product"
         reveal_type(Order().products.queryset_method())  # N: Revealed type is "builtins.int"
         if 1 == 2:
             manager = User().products
@@ -731,11 +731,11 @@
         from myapp.models.user import User
         reveal_type(Store().purchases)  # N: Revealed type is "myapp.models.purchase.Purchase_RelatedManager"
         reveal_type(Store().purchases.queryset_method())  # N: Revealed type is "myapp.models.querysets.PurchaseQuerySet"
-        reveal_type(Store().purchases.filter())  # N: Revealed type is "myapp.models.querysets.PurchaseQuerySet[myapp.models.purchase.Purchase*]"
+        reveal_type(Store().purchases.filter())  # N: Revealed type is "myapp.models.querysets.PurchaseQuerySet[myapp.models.purchase.Purchase]"
         reveal_type(Store().purchases.filter().queryset_method())  # N: Revealed type is "myapp.models.querysets.PurchaseQuerySet"
         reveal_type(User().purchases)  # N: Revealed type is "myapp.models.purchase.Purchase_RelatedManager"
         reveal_type(User().purchases.queryset_method())  # N: Revealed type is "myapp.models.querysets.PurchaseQuerySet"
-        reveal_type(User().purchases.filter())  # N: Revealed type is "myapp.models.querysets.PurchaseQuerySet[myapp.models.purchase.Purchase*]"
+        reveal_type(User().purchases.filter())  # N: Revealed type is "myapp.models.querysets.PurchaseQuerySet[myapp.models.purchase.Purchase]"
         reveal_type(User().purchases.filter().queryset_method())  # N: Revealed type is "myapp.models.querysets.PurchaseQuerySet"
     installed_apps:
         - myapp
diff --git a/tests/typecheck/managers/querysets/test_annotate.yml b/tests/typecheck/managers/querysets/test_annotate.yml
--- a/tests/typecheck/managers/querysets/test_annotate.yml
+++ b/tests/typecheck/managers/querysets/test_annotate.yml
@@ -122,10 +122,10 @@
         reveal_type(qs) # N: Revealed type is "django.db.models.query._QuerySet[django_stubs_ext.WithAnnotations[myapp__models__User, TypedDict({'foo': Any})], django_stubs_ext.WithAnnotations[myapp__models__User, TypedDict({'foo': Any})]]"
 
         annotated = qs.get()
-        reveal_type(annotated) # N: Revealed type is "django_stubs_ext.WithAnnotations[myapp__models__User, TypedDict({'foo': Any})]*"
+        reveal_type(annotated) # N: Revealed type is "django_stubs_ext.WithAnnotations[myapp__models__User, TypedDict({'foo': Any})]"
         reveal_type(annotated.foo) # N: Revealed type is "Any"
         print(annotated.bar) # E: "WithAnnotations[myapp__models__User, TypedDict({'foo': Any})]" has no attribute "bar"
-        reveal_type(annotated.username) # N: Revealed type is "builtins.str*"
+        reveal_type(annotated.username) # N: Revealed type is "builtins.str"
 
     installed_apps:
         - myapp
@@ -196,10 +196,10 @@
         qs = User.objects.annotate(foo=F('id'))
         qs = qs.annotate(bar=F('id'))
         annotated = qs.get()
-        reveal_type(annotated) # N: Revealed type is "django_stubs_ext.WithAnnotations[myapp__models__User, TypedDict({'foo': Any, 'bar': Any})]*"
+        reveal_type(annotated) # N: Revealed type is "django_stubs_ext.WithAnnotations[myapp__models__User, TypedDict({'foo': Any, 'bar': Any})]"
         reveal_type(annotated.foo) # N: Revealed type is "Any"
         reveal_type(annotated.bar) # N: Revealed type is "Any"
-        reveal_type(annotated.username) # N: Revealed type is "builtins.str*"
+        reveal_type(annotated.username) # N: Revealed type is "builtins.str"
     installed_apps:
         - myapp
     files:
@@ -280,19 +280,19 @@
 
         values_list_flat_known = Blog.objects.annotate(foo=F('id')).values_list('text', flat=True).get()
         # Even though it's annotated, we still know the lookup's type.
-        reveal_type(values_list_flat_known)  # N: Revealed type is "builtins.str*"
+        reveal_type(values_list_flat_known)  # N: Revealed type is "builtins.str"
         values_list_flat_unknown = Blog.objects.annotate(foo=F('id')).values_list('foo', flat=True).get()
         # We don't know the type of an unknown lookup
         reveal_type(values_list_flat_unknown)  # N: Revealed type is "Any"
 
         values_no_params = Blog.objects.annotate(foo=F('id')).values().get()
-        reveal_type(values_no_params)  # N: Revealed type is "builtins.dict*[builtins.str, Any]"
+        reveal_type(values_no_params)  # N: Revealed type is "builtins.dict[builtins.str, Any]"
 
         values_list_no_params = Blog.objects.annotate(foo=F('id')).values_list().get()
-        reveal_type(values_list_no_params)  # N: Revealed type is "builtins.tuple*[Any, ...]"
+        reveal_type(values_list_no_params)  # N: Revealed type is "builtins.tuple[Any, ...]"
 
         values_list_flat_no_params = Blog.objects.annotate(foo=F('id')).values_list(flat=True).get()
-        reveal_type(values_list_flat_no_params)  # N: Revealed type is "builtins.int*"
+        reveal_type(values_list_flat_no_params)  # N: Revealed type is "builtins.int"
 
         values_list_named_no_params = Blog.objects.annotate(foo=F('id')).values_list(named=True).get()
         reveal_type(values_list_named_no_params.foo) # N: Revealed type is "Any"
@@ -324,13 +324,13 @@
 
 
         before_values_no_params = Blog.objects.values().annotate(foo=F('id')).get()
-        reveal_type(before_values_no_params)  # N: Revealed type is "builtins.dict*[builtins.str, Any]"
+        reveal_type(before_values_no_params)  # N: Revealed type is "builtins.dict[builtins.str, Any]"
 
         before_values_list_no_params = Blog.objects.values_list().annotate(foo=F('id')).get()
-        reveal_type(before_values_list_no_params)  # N: Revealed type is "builtins.tuple*[Any, ...]"
+        reveal_type(before_values_list_no_params)  # N: Revealed type is "builtins.tuple[Any, ...]"
 
         before_values_list_flat_no_params = Blog.objects.values_list(flat=True).annotate(foo=F('id')).get()
-        reveal_type(before_values_list_flat_no_params)  # N: Revealed type is "builtins.int*"
+        reveal_type(before_values_list_flat_no_params)  # N: Revealed type is "builtins.int"
 
         before_values_list_named_no_params = Blog.objects.values_list(named=True).annotate(foo=F('id')).get()
         reveal_type(before_values_list_named_no_params.foo) # N: Revealed type is "Any"
diff --git a/tests/typecheck/managers/querysets/test_basic_methods.yml b/tests/typecheck/managers/querysets/test_basic_methods.yml
--- a/tests/typecheck/managers/querysets/test_basic_methods.yml
+++ b/tests/typecheck/managers/querysets/test_basic_methods.yml
@@ -4,24 +4,24 @@
         from myapp.models import Blog
 
         qs = Blog.objects.all()
-        reveal_type(qs) # N: Revealed type is "django.db.models.query._QuerySet[myapp.models.Blog*, myapp.models.Blog*]"
-        reveal_type(qs.get(id=1)) # N: Revealed type is "myapp.models.Blog*"
-        reveal_type(iter(qs)) # N: Revealed type is "typing.Iterator*[myapp.models.Blog*]"
-        reveal_type(qs.iterator()) # N: Revealed type is "typing.Iterator[myapp.models.Blog*]"
-        reveal_type(qs.first()) # N: Revealed type is "Union[myapp.models.Blog*, None]"
-        reveal_type(qs.earliest()) # N: Revealed type is "myapp.models.Blog*"
-        reveal_type(qs[0]) # N: Revealed type is "myapp.models.Blog*"
+        reveal_type(qs) # N: Revealed type is "django.db.models.query._QuerySet[myapp.models.Blog, myapp.models.Blog]"
+        reveal_type(qs.get(id=1)) # N: Revealed type is "myapp.models.Blog"
+        reveal_type(iter(qs)) # N: Revealed type is "typing.Iterator[myapp.models.Blog]"
+        reveal_type(qs.iterator()) # N: Revealed type is "typing.Iterator[myapp.models.Blog]"
+        reveal_type(qs.first()) # N: Revealed type is "Union[myapp.models.Blog, None]"
+        reveal_type(qs.earliest()) # N: Revealed type is "myapp.models.Blog"
+        reveal_type(qs[0]) # N: Revealed type is "myapp.models.Blog"
         reveal_type(qs[:9]) # N: Revealed type is "django.db.models.query._QuerySet[myapp.models.Blog, myapp.models.Blog]"
-        reveal_type(qs.create()) # N: Revealed type is "myapp.models.Blog*"
-        reveal_type(qs.get_or_create()) # N: Revealed type is "Tuple[myapp.models.Blog*, builtins.bool]"
+        reveal_type(qs.create()) # N: Revealed type is "myapp.models.Blog"
+        reveal_type(qs.get_or_create()) # N: Revealed type is "Tuple[myapp.models.Blog, builtins.bool]"
         reveal_type(qs.exists()) # N: Revealed type is "builtins.bool"
         reveal_type(qs.none()) # N: Revealed type is "django.db.models.query._QuerySet[myapp.models.Blog, myapp.models.Blog]"
-        reveal_type(qs.update_or_create()) # N: Revealed type is "Tuple[myapp.models.Blog*, builtins.bool]"
+        reveal_type(qs.update_or_create()) # N: Revealed type is "Tuple[myapp.models.Blog, builtins.bool]"
         reveal_type(qs.explain()) # N: Revealed type is "builtins.str"
         reveal_type(qs.raw(qs.explain())) # N: Revealed type is "django.db.models.query.RawQuerySet[Any]"
         # .dates / .datetimes
-        reveal_type(Blog.objects.dates("created_at", "day")) # N: Revealed type is "django.db.models.query._QuerySet[myapp.models.Blog*, datetime.date]"
-        reveal_type(Blog.objects.datetimes("created_at", "day")) # N: Revealed type is "django.db.models.query._QuerySet[myapp.models.Blog*, datetime.datetime]"
+        reveal_type(Blog.objects.dates("created_at", "day")) # N: Revealed type is "django.db.models.query._QuerySet[myapp.models.Blog, datetime.date]"
+        reveal_type(Blog.objects.datetimes("created_at", "day")) # N: Revealed type is "django.db.models.query._QuerySet[myapp.models.Blog, datetime.datetime]"
 
         # AND-ing QuerySets
         reveal_type(Blog.objects.all() & Blog.objects.all()) # N: Revealed type is "django.db.models.query._QuerySet[myapp.models.Blog, myapp.models.Blog]"
@@ -29,9 +29,9 @@
         # bulk methods
         reveal_type(qs.count()) # N: Revealed type is "builtins.int"
         reveal_type(qs.update(created_at=timezone.now()))  # N: Revealed type is "builtins.int"
-        reveal_type(qs.in_bulk()) # N: Revealed type is "builtins.dict[Any, myapp.models.Blog*]"
+        reveal_type(qs.in_bulk()) # N: Revealed type is "builtins.dict[Any, myapp.models.Blog]"
         reveal_type(qs.bulk_update(list(qs), fields=["created_at"]))  # N: Revealed type is "builtins.int"
-        reveal_type(qs.bulk_create([]))  # N: Revealed type is "builtins.list[myapp.models.Blog*]"
+        reveal_type(qs.bulk_create([]))  # N: Revealed type is "builtins.list[myapp.models.Blog]"
         reveal_type(qs.delete()) # N: Revealed type is "Tuple[builtins.int, builtins.dict[builtins.str, builtins.int]]"
     installed_apps:
         - myapp
diff --git a/tests/typecheck/managers/querysets/test_from_queryset.yml b/tests/typecheck/managers/querysets/test_from_queryset.yml
--- a/tests/typecheck/managers/querysets/test_from_queryset.yml
+++ b/tests/typecheck/managers/querysets/test_from_queryset.yml
@@ -2,10 +2,10 @@
     main: |
         from myapp.models import MyModel
         reveal_type(MyModel().objects)  # N: Revealed type is "myapp.models.NewManager[myapp.models.MyModel]"
-        reveal_type(MyModel().objects.get())  # N: Revealed type is "myapp.models.MyModel*"
+        reveal_type(MyModel().objects.get())  # N: Revealed type is "myapp.models.MyModel"
         reveal_type(MyModel().objects.queryset_method())  # N: Revealed type is "builtins.str"
         reveal_type(MyModel.objects.filter(id=1).queryset_method()) # N: Revealed type is "builtins.str"
-        reveal_type(MyModel.objects.filter(id=1)) # N: Revealed type is "myapp.models.ModelQuerySet[myapp.models.MyModel*]"
+        reveal_type(MyModel.objects.filter(id=1)) # N: Revealed type is "myapp.models.ModelQuerySet[myapp.models.MyModel]"
     installed_apps:
         - myapp
     files:
@@ -27,13 +27,13 @@
         from myapp.models import MyModel
         reveal_type(MyModel.objects)  # N: Revealed type is "myapp.models.NewManager[myapp.models.MyModel]"
         reveal_type(MyModel.objects)  # N: Revealed type is "myapp.models.NewManager[myapp.models.MyModel]"
-        reveal_type(MyModel.objects.get())  # N: Revealed type is "myapp.models.MyModel*"
+        reveal_type(MyModel.objects.get())  # N: Revealed type is "myapp.models.MyModel"
         reveal_type(MyModel.objects.queryset_method())  # N: Revealed type is "myapp.querysets.ModelQuerySet"
         reveal_type(MyModel.objects.queryset_method_2())  # N: Revealed type is "typing.Iterable[myapp.querysets.Custom]"
         reveal_type(MyModel.objects.queryset_method_3())  # N: Revealed type is "builtins.str"
         reveal_type(MyModel.objects.queryset_method_4([]))  # N: Revealed type is "None"
         reveal_type(MyModel.objects.filter(id=1).queryset_method()) # N: Revealed type is "myapp.querysets.ModelQuerySet"
-        reveal_type(MyModel.objects.filter(id=1)) # N: Revealed type is "myapp.querysets.ModelQuerySet[myapp.models.MyModel*]"
+        reveal_type(MyModel.objects.filter(id=1)) # N: Revealed type is "myapp.querysets.ModelQuerySet[myapp.models.MyModel]"
     installed_apps:
         - myapp
     files:
@@ -75,7 +75,7 @@
     main: |
         from myapp.models import MyModel
         reveal_type(MyModel().objects)  # N: Revealed type is "myapp.models.NewManager[myapp.models.MyModel]"
-        reveal_type(MyModel().objects.get())  # N: Revealed type is "myapp.models.MyModel*"
+        reveal_type(MyModel().objects.get())  # N: Revealed type is "myapp.models.MyModel"
         reveal_type(MyModel().objects.queryset_method())  # N: Revealed type is "builtins.str"
     installed_apps:
         - myapp
@@ -149,7 +149,7 @@
     main: |
         from myapp.models import MyModel
         reveal_type(MyModel().objects)  # N: Revealed type is "myapp.models.NewManager[myapp.models.MyModel]"
-        reveal_type(MyModel().objects.get())  # N: Revealed type is "myapp.models.MyModel*"
+        reveal_type(MyModel().objects.get())  # N: Revealed type is "myapp.models.MyModel"
         reveal_type(MyModel().objects.queryset_method())  # N: Revealed type is "builtins.str"
     installed_apps:
         - myapp
@@ -173,7 +173,7 @@
     main: |
         from myapp.models import MyModel
         reveal_type(MyModel().objects)  # N: Revealed type is "myapp.managers.NewManager[myapp.models.MyModel]"
-        reveal_type(MyModel().objects.get())  # N: Revealed type is "myapp.models.MyModel*"
+        reveal_type(MyModel().objects.get())  # N: Revealed type is "myapp.models.MyModel"
         reveal_type(MyModel().objects.queryset_method)  # N: Revealed type is "def (param: Union[builtins.str, None] =) -> Union[builtins.str, None]"
         reveal_type(MyModel().objects.queryset_method('str'))  # N: Revealed type is "Union[builtins.str, None]"
     installed_apps:
@@ -203,7 +203,7 @@
     main: |
         from myapp.models import MyModel
         reveal_type(MyModel().objects)  # N: Revealed type is "myapp.managers.NewManager[myapp.models.MyModel]"
-        reveal_type(MyModel().objects.get())  # N: Revealed type is "myapp.models.MyModel*"
+        reveal_type(MyModel().objects.get())  # N: Revealed type is "myapp.models.MyModel"
         reveal_type(MyModel().objects.base_queryset_method)  # N: Revealed type is "def (param: Union[builtins.int, builtins.str]) -> <nothing>"
         reveal_type(MyModel().objects.base_queryset_method(2))  # N: Revealed type is "<nothing>"
     installed_apps:
@@ -350,25 +350,25 @@
 -   case: from_queryset_includes_methods_returning_queryset
     main: |
         from myapp.models import MyModel
-        reveal_type(MyModel.objects.none)  # N: Revealed type is "def () -> myapp.models.MyQuerySet[myapp.models.MyModel*]"
-        reveal_type(MyModel.objects.all)  # N: Revealed type is "def () -> myapp.models.MyQuerySet[myapp.models.MyModel*]"
-        reveal_type(MyModel.objects.filter)  # N: Revealed type is "def (*args: Any, **kwargs: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel*]"
-        reveal_type(MyModel.objects.exclude)  # N: Revealed type is "def (*args: Any, **kwargs: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel*]"
-        reveal_type(MyModel.objects.complex_filter)  # N: Revealed type is "def (filter_obj: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel*]"
-        reveal_type(MyModel.objects.union)  # N: Revealed type is "def (*other_qs: Any, *, all: builtins.bool =) -> myapp.models.MyQuerySet[myapp.models.MyModel*]"
-        reveal_type(MyModel.objects.intersection)  # N: Revealed type is "def (*other_qs: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel*]"
-        reveal_type(MyModel.objects.difference)  # N: Revealed type is "def (*other_qs: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel*]"
-        reveal_type(MyModel.objects.select_for_update)  # N: Revealed type is "def (nowait: builtins.bool =, skip_locked: builtins.bool =, of: typing.Sequence[builtins.str] =, no_key: builtins.bool =) -> myapp.models.MyQuerySet[myapp.models.MyModel*]"
-        reveal_type(MyModel.objects.select_related)  # N: Revealed type is "def (*fields: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel*]"
-        reveal_type(MyModel.objects.prefetch_related)  # N: Revealed type is "def (*lookups: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel*]"
-        reveal_type(MyModel.objects.annotate)  # N: Revealed type is "def (*args: Any, **kwargs: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel*]"
-        reveal_type(MyModel.objects.alias)  # N: Revealed type is "def (*args: Any, **kwargs: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel*]"
-        reveal_type(MyModel.objects.order_by)  # N: Revealed type is "def (*field_names: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel*]"
-        reveal_type(MyModel.objects.distinct)  # N: Revealed type is "def (*field_names: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel*]"
-        reveal_type(MyModel.objects.reverse)  # N: Revealed type is "def () -> myapp.models.MyQuerySet[myapp.models.MyModel*]"
-        reveal_type(MyModel.objects.defer)  # N: Revealed type is "def (*fields: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel*]"
-        reveal_type(MyModel.objects.only)  # N: Revealed type is "def (*fields: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel*]"
-        reveal_type(MyModel.objects.using)  # N: Revealed type is "def (alias: Union[builtins.str, None]) -> myapp.models.MyQuerySet[myapp.models.MyModel*]"
+        reveal_type(MyModel.objects.none)  # N: Revealed type is "def () -> myapp.models.MyQuerySet[myapp.models.MyModel]"
+        reveal_type(MyModel.objects.all)  # N: Revealed type is "def () -> myapp.models.MyQuerySet[myapp.models.MyModel]"
+        reveal_type(MyModel.objects.filter)  # N: Revealed type is "def (*args: Any, **kwargs: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel]"
+        reveal_type(MyModel.objects.exclude)  # N: Revealed type is "def (*args: Any, **kwargs: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel]"
+        reveal_type(MyModel.objects.complex_filter)  # N: Revealed type is "def (filter_obj: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel]"
+        reveal_type(MyModel.objects.union)  # N: Revealed type is "def (*other_qs: Any, *, all: builtins.bool =) -> myapp.models.MyQuerySet[myapp.models.MyModel]"
+        reveal_type(MyModel.objects.intersection)  # N: Revealed type is "def (*other_qs: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel]"
+        reveal_type(MyModel.objects.difference)  # N: Revealed type is "def (*other_qs: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel]"
+        reveal_type(MyModel.objects.select_for_update)  # N: Revealed type is "def (nowait: builtins.bool =, skip_locked: builtins.bool =, of: typing.Sequence[builtins.str] =, no_key: builtins.bool =) -> myapp.models.MyQuerySet[myapp.models.MyModel]"
+        reveal_type(MyModel.objects.select_related)  # N: Revealed type is "def (*fields: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel]"
+        reveal_type(MyModel.objects.prefetch_related)  # N: Revealed type is "def (*lookups: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel]"
+        reveal_type(MyModel.objects.annotate)  # N: Revealed type is "def (*args: Any, **kwargs: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel]"
+        reveal_type(MyModel.objects.alias)  # N: Revealed type is "def (*args: Any, **kwargs: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel]"
+        reveal_type(MyModel.objects.order_by)  # N: Revealed type is "def (*field_names: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel]"
+        reveal_type(MyModel.objects.distinct)  # N: Revealed type is "def (*field_names: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel]"
+        reveal_type(MyModel.objects.reverse)  # N: Revealed type is "def () -> myapp.models.MyQuerySet[myapp.models.MyModel]"
+        reveal_type(MyModel.objects.defer)  # N: Revealed type is "def (*fields: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel]"
+        reveal_type(MyModel.objects.only)  # N: Revealed type is "def (*fields: Any) -> myapp.models.MyQuerySet[myapp.models.MyModel]"
+        reveal_type(MyModel.objects.using)  # N: Revealed type is "def (alias: Union[builtins.str, None]) -> myapp.models.MyQuerySet[myapp.models.MyModel]"
     installed_apps:
         - myapp
     files:
diff --git a/tests/typecheck/managers/querysets/test_values_list.yml b/tests/typecheck/managers/querysets/test_values_list.yml
--- a/tests/typecheck/managers/querysets/test_values_list.yml
+++ b/tests/typecheck/managers/querysets/test_values_list.yml
@@ -37,7 +37,7 @@
         reveal_type(query.all().get()) # N: Revealed type is "Tuple[builtins.str]"
         reveal_type(query.filter(age__gt=16).get()) # N: Revealed type is "Tuple[builtins.str]"
         reveal_type(query.exclude(age__lte=16).get()) # N: Revealed type is "Tuple[builtins.str]"
-        reveal_type(query.annotate(name_length=Length("name")).get()) # N: Revealed type is "builtins.tuple*[Any, ...]"
+        reveal_type(query.annotate(name_length=Length("name")).get()) # N: Revealed type is "builtins.tuple[Any, ...]"
     installed_apps:
         - myapp
     files:
@@ -79,12 +79,12 @@
 -   case: values_list_flat_true_methods
     main: |
         from myapp.models import MyUser, MyUser2
-        reveal_type(MyUser.objects.values_list('name', flat=True).get())  # N: Revealed type is "builtins.str*"
+        reveal_type(MyUser.objects.values_list('name', flat=True).get())  # N: Revealed type is "builtins.str"
         reveal_type(MyUser.objects.values_list('name', 'age', flat=True).get())
 
         # flat=True without specified fields returns primary key values
-        reveal_type(MyUser.objects.values_list(flat=True)[0])  # N: Revealed type is "builtins.int*"
-        reveal_type(MyUser2.objects.values_list(flat=True)[0])  # N: Revealed type is "builtins.str*"
+        reveal_type(MyUser.objects.values_list(flat=True)[0])  # N: Revealed type is "builtins.int"
+        reveal_type(MyUser2.objects.values_list(flat=True)[0])  # N: Revealed type is "builtins.str"
     out: |
         main:3: error: 'flat' is not valid when 'values_list' is called with more than one field
         main:3: note: Revealed type is "Any"
@@ -217,7 +217,7 @@
         reveal_type(Blog.objects.values_list('id', flat=True))  # N: Revealed type is "django.db.models.query._QuerySet[myapp.models.Blog, builtins.int]"
         reveal_type(Blog.objects.values_list('publisher_id', flat=True))  # N: Revealed type is "django.db.models.query._QuerySet[myapp.models.Blog, builtins.int]"
         # is Iterable[int]
-        reveal_type(list(Blog.objects.values_list('id', flat=True)))  # N: Revealed type is "builtins.list[builtins.int*]"
+        reveal_type(list(Blog.objects.values_list('id', flat=True)))  # N: Revealed type is "builtins.list[builtins.int]"
     installed_apps:
         - myapp
     files:
diff --git a/tests/typecheck/managers/test_managers.yml b/tests/typecheck/managers/test_managers.yml
--- a/tests/typecheck/managers/test_managers.yml
+++ b/tests/typecheck/managers/test_managers.yml
@@ -2,7 +2,7 @@
     main: |
         from myapp.models import User
         reveal_type(User.objects)  # N: Revealed type is "django.db.models.manager.Manager[myapp.models.User]"
-        reveal_type(User.objects.get())  # N: Revealed type is "myapp.models.User*"
+        reveal_type(User.objects.get())  # N: Revealed type is "myapp.models.User"
     installed_apps:
         - myapp
     files:
@@ -59,7 +59,7 @@
     main: |
         from myapp.models import Base, MyModel
         base_instance = Base(MyModel)
-        reveal_type(base_instance.model_cls._base_manager)  # N: Revealed type is "django.db.models.manager.BaseManager[myapp.models.MyModel*]"
+        reveal_type(base_instance.model_cls._base_manager)  # N: Revealed type is "django.db.models.manager.BaseManager[myapp.models.MyModel]"
     installed_apps:
         - myapp
     files:
@@ -78,7 +78,7 @@
                     pass
                 class Child(Base[MyModel]):
                     def method(self) -> None:
-                        reveal_type(self.model_cls._base_manager)  # N: Revealed type is "django.db.models.manager.BaseManager[myapp.models.MyModel*]"
+                        reveal_type(self.model_cls._base_manager)  # N: Revealed type is "django.db.models.manager.BaseManager[myapp.models.MyModel]"
 
 -   case: if_custom_manager_defined_it_is_set_to_default_manager
     main: |
@@ -126,7 +126,7 @@
     main: |
         from myapp.models import MyUser
         reveal_type(MyUser.objects)  # N: Revealed type is "myapp.models.UserManager[myapp.models.MyUser]"
-        reveal_type(MyUser.objects.get())  # N: Revealed type is "myapp.models.MyUser*"
+        reveal_type(MyUser.objects.get())  # N: Revealed type is "myapp.models.MyUser"
         reveal_type(MyUser.objects.get_or_404())  # N: Revealed type is "myapp.models.MyUser"
     installed_apps:
         - myapp
@@ -222,10 +222,10 @@
     main: |
         from myapp.models import UnrelatedModel, MyModel
         reveal_type(UnrelatedModel.objects) # N: Revealed type is "django.db.models.manager.Manager[myapp.models.UnrelatedModel]"
-        reveal_type(UnrelatedModel.objects.first()) # N: Revealed type is "Union[myapp.models.UnrelatedModel*, None]"
+        reveal_type(UnrelatedModel.objects.first()) # N: Revealed type is "Union[myapp.models.UnrelatedModel, None]"
 
         reveal_type(MyModel.objects) # N: Revealed type is "django.db.models.manager.Manager[myapp.models.MyModel]"
-        reveal_type(MyModel.objects.first()) # N: Revealed type is "Union[myapp.models.MyModel*, None]"
+        reveal_type(MyModel.objects.first()) # N: Revealed type is "Union[myapp.models.MyModel, None]"
     installed_apps:
         - myapp
     files:
@@ -243,10 +243,10 @@
     main: |
         from myapp.models import UnrelatedModel2, MyModel2
         reveal_type(UnrelatedModel2.objects) # N: Revealed type is "django.db.models.manager.Manager[myapp.models.UnrelatedModel2]"
-        reveal_type(UnrelatedModel2.objects.first()) # N: Revealed type is "Union[myapp.models.UnrelatedModel2*, None]"
+        reveal_type(UnrelatedModel2.objects.first()) # N: Revealed type is "Union[myapp.models.UnrelatedModel2, None]"
 
         reveal_type(MyModel2.objects) # N: Revealed type is "django.db.models.manager.Manager[myapp.models.MyModel2]"
-        reveal_type(MyModel2.objects.first()) # N: Revealed type is "Union[myapp.models.MyModel2*, None]"
+        reveal_type(MyModel2.objects.first()) # N: Revealed type is "Union[myapp.models.MyModel2, None]"
     installed_apps:
         - myapp
     files:
@@ -264,10 +264,10 @@
     main: |
         from myapp.models import ParentOfMyModel3, MyModel3
         reveal_type(ParentOfMyModel3.objects) # N: Revealed type is "django.db.models.manager.Manager[myapp.models.ParentOfMyModel3]"
-        reveal_type(ParentOfMyModel3.objects.first()) # N: Revealed type is "Union[myapp.models.ParentOfMyModel3*, None]"
+        reveal_type(ParentOfMyModel3.objects.first()) # N: Revealed type is "Union[myapp.models.ParentOfMyModel3, None]"
 
         reveal_type(MyModel3.objects) # N: Revealed type is "django.db.models.manager.Manager[myapp.models.MyModel3]"
-        reveal_type(MyModel3.objects.first()) # N: Revealed type is "Union[myapp.models.MyModel3*, None]"
+        reveal_type(MyModel3.objects.first()) # N: Revealed type is "Union[myapp.models.MyModel3, None]"
     installed_apps:
         - myapp
     files:
@@ -285,10 +285,10 @@
     main: |
         from myapp.models import ParentOfMyModel4, MyModel4
         reveal_type(ParentOfMyModel4.objects) # N: Revealed type is "django.db.models.manager.Manager[myapp.models.ParentOfMyModel4]"
-        reveal_type(ParentOfMyModel4.objects.first()) # N: Revealed type is "Union[myapp.models.ParentOfMyModel4*, None]"
+        reveal_type(ParentOfMyModel4.objects.first()) # N: Revealed type is "Union[myapp.models.ParentOfMyModel4, None]"
 
         reveal_type(MyModel4.objects) # N: Revealed type is "django.db.models.manager.Manager[myapp.models.MyModel4]"
-        reveal_type(MyModel4.objects.first()) # N: Revealed type is "Union[myapp.models.MyModel4*, None]"
+        reveal_type(MyModel4.objects.first()) # N: Revealed type is "Union[myapp.models.MyModel4, None]"
     installed_apps:
         - myapp
     files:
@@ -333,15 +333,15 @@
     main: |
         from myapp.models import User
         reveal_type(User.objects)  # N: Revealed type is "myapp.models.User_MyManager2[myapp.models.User]"
-        reveal_type(User.objects.select_related())  # N: Revealed type is "django.db.models.query._QuerySet[myapp.models.User*, myapp.models.User*]"
-        reveal_type(User.objects.get())  # N: Revealed type is "myapp.models.User*"
+        reveal_type(User.objects.select_related())  # N: Revealed type is "django.db.models.query._QuerySet[myapp.models.User, myapp.models.User]"
+        reveal_type(User.objects.get())  # N: Revealed type is "myapp.models.User"
         reveal_type(User.objects.get_instance())  # N: Revealed type is "builtins.int"
         reveal_type(User.objects.get_instance_untyped('hello'))  # N: Revealed type is "Any"
 
         from myapp.models import ChildUser
         reveal_type(ChildUser.objects)  # N: Revealed type is "myapp.models.ChildUser_MyManager2[myapp.models.ChildUser]"
-        reveal_type(ChildUser.objects.select_related())  # N: Revealed type is "django.db.models.query._QuerySet[myapp.models.ChildUser*, myapp.models.ChildUser*]"
-        reveal_type(ChildUser.objects.get())  # N: Revealed type is "myapp.models.ChildUser*"
+        reveal_type(ChildUser.objects.select_related())  # N: Revealed type is "django.db.models.query._QuerySet[myapp.models.ChildUser, myapp.models.ChildUser]"
+        reveal_type(ChildUser.objects.get())  # N: Revealed type is "myapp.models.ChildUser"
         reveal_type(ChildUser.objects.get_instance())  # N: Revealed type is "builtins.int"
         reveal_type(ChildUser.objects.get_instance_untyped('hello'))  # N: Revealed type is "Any"
     installed_apps:
diff --git a/tests/typecheck/models/test_contrib_models.yml b/tests/typecheck/models/test_contrib_models.yml
--- a/tests/typecheck/models/test_contrib_models.yml
+++ b/tests/typecheck/models/test_contrib_models.yml
@@ -1,14 +1,14 @@
 -   case: contrib_auth_model_fields
     main: |
         from django.contrib.auth.models import User
-        reveal_type(User().username)  # N: Revealed type is "builtins.str*"
-        reveal_type(User().password)  # N: Revealed type is "builtins.str*"
-        reveal_type(User().first_name)  # N: Revealed type is "builtins.str*"
-        reveal_type(User().last_name)  # N: Revealed type is "builtins.str*"
-        reveal_type(User().email)  # N: Revealed type is "builtins.str*"
+        reveal_type(User().username)  # N: Revealed type is "builtins.str"
+        reveal_type(User().password)  # N: Revealed type is "builtins.str"
+        reveal_type(User().first_name)  # N: Revealed type is "builtins.str"
+        reveal_type(User().last_name)  # N: Revealed type is "builtins.str"
+        reveal_type(User().email)  # N: Revealed type is "builtins.str"
         reveal_type(User().is_staff)  # N: Revealed type is "builtins.bool"
         reveal_type(User().is_active)  # N: Revealed type is "builtins.bool"
-        reveal_type(User().date_joined)  # N: Revealed type is "datetime.datetime*"
+        reveal_type(User().date_joined)  # N: Revealed type is "datetime.datetime"
         reveal_type(User().last_login)  # N: Revealed type is "Union[datetime.datetime, None]"
         reveal_type(User().is_authenticated)  # N: Revealed type is "Literal[True]"
         reveal_type(User().is_anonymous)  # N: Revealed type is "Literal[False]"
@@ -18,11 +18,11 @@
         reveal_type(AnonymousUser().is_anonymous)  # N: Revealed type is "Literal[True]"
 
         from django.contrib.auth.models import Permission
-        reveal_type(Permission().name)  # N: Revealed type is "builtins.str*"
-        reveal_type(Permission().codename)  # N: Revealed type is "builtins.str*"
+        reveal_type(Permission().name)  # N: Revealed type is "builtins.str"
+        reveal_type(Permission().codename)  # N: Revealed type is "builtins.str"
 
         from django.contrib.auth.models import PermissionsMixin
         reveal_type(PermissionsMixin().is_superuser)  # N: Revealed type is "builtins.bool"
 
         from django.contrib.auth.models import Group
-        reveal_type(Group().name)  # N: Revealed type is "builtins.str*"
+        reveal_type(Group().name)  # N: Revealed type is "builtins.str"
diff --git a/tests/typecheck/models/test_create.yml b/tests/typecheck/models/test_create.yml
--- a/tests/typecheck/models/test_create.yml
+++ b/tests/typecheck/models/test_create.yml
@@ -19,9 +19,9 @@
     main: |
         from myapp.models import Child
         c = Child.objects.create(name='Maxim', lastname='Maxim2')
-        reveal_type(c.id)  # N: Revealed type is "builtins.int*"
-        reveal_type(c.name)  # N: Revealed type is "builtins.str*"
-        reveal_type(c.lastname)  # N: Revealed type is "builtins.str*"
+        reveal_type(c.id)  # N: Revealed type is "builtins.int"
+        reveal_type(c.name)  # N: Revealed type is "builtins.str"
+        reveal_type(c.lastname)  # N: Revealed type is "builtins.str"
     installed_apps:
         - myapp
     files:
@@ -96,19 +96,19 @@
     main: |
         from myapp.models import MyModel
         first = MyModel(id=None)
-        reveal_type(first.id)  # N: Revealed type is "builtins.int*"
+        reveal_type(first.id)  # N: Revealed type is "builtins.int"
         first = MyModel.objects.create(id=None)
-        reveal_type(first.id)  # N: Revealed type is "builtins.int*"
+        reveal_type(first.id)  # N: Revealed type is "builtins.int"
         first = MyModel()
         first.id = None
-        reveal_type(first.id)  # N: Revealed type is "builtins.int*"
+        reveal_type(first.id)  # N: Revealed type is "builtins.int"
 
         from myapp.models import MyModel2
         MyModel2(id=None)  # E: Incompatible type for "id" of "MyModel2" (got "None", expected "Union[float, int, str, Combinable]")
         MyModel2.objects.create(id=None)  # E: Incompatible type for "id" of "MyModel2" (got "None", expected "Union[float, int, str, Combinable]")
         second = MyModel2()
         second.id = None  # E: Incompatible types in assignment (expression has type "None", variable has type "Union[float, int, str, Combinable]")
-        reveal_type(second.id)  # N: Revealed type is "builtins.int*"
+        reveal_type(second.id)  # N: Revealed type is "builtins.int"
 
         # default set but no primary key doesn't allow None
         from myapp.models import MyModel3
@@ -116,7 +116,7 @@
         MyModel3.objects.create(default=None)  # E: Incompatible type for "default" of "MyModel3" (got "None", expected "Union[float, int, str, Combinable]")
         third = MyModel3()
         third.default = None  # E: Incompatible types in assignment (expression has type "None", variable has type "Union[float, int, str, Combinable]")
-        reveal_type(third.default)  # N: Revealed type is "builtins.int*"
+        reveal_type(third.default)  # N: Revealed type is "builtins.int"
     installed_apps:
         - myapp
     files:
diff --git a/tests/typecheck/models/test_inheritance.yml b/tests/typecheck/models/test_inheritance.yml
--- a/tests/typecheck/models/test_inheritance.yml
+++ b/tests/typecheck/models/test_inheritance.yml
@@ -69,7 +69,7 @@
 -   case: fields_recognized_if_base_model_is_subclass_of_models_model
     main: |
         from myapp.models import User
-        reveal_type(User().username)  # N: Revealed type is "builtins.str*"
+        reveal_type(User().username)  # N: Revealed type is "builtins.str"
     installed_apps:
         - myapp
     files:
@@ -90,8 +90,8 @@
 -   case: django_contrib_gis_base_model_mixin_inheritance
     main: |
         from myapp.models import User
-        reveal_type(User().name)  # N: Revealed type is "builtins.str*"
-        reveal_type(User().updated_at)  # N: Revealed type is "datetime.datetime*"
+        reveal_type(User().name)  # N: Revealed type is "builtins.str"
+        reveal_type(User().updated_at)  # N: Revealed type is "datetime.datetime"
     installed_apps:
         - myapp
     files:
diff --git a/tests/typecheck/models/test_init.yml b/tests/typecheck/models/test_init.yml
--- a/tests/typecheck/models/test_init.yml
+++ b/tests/typecheck/models/test_init.yml
@@ -283,10 +283,10 @@
             unset_set_type=[],
         )
     out: |
-        main:4: note: Revealed type is "builtins.int*"
-        main:5: note: Revealed type is "builtins.int*"
-        main:6: note: Revealed type is "builtins.list*[builtins.int]"
-        main:7: note: Revealed type is "builtins.int*"
+        main:4: note: Revealed type is "builtins.int"
+        main:5: note: Revealed type is "builtins.int"
+        main:6: note: Revealed type is "builtins.list[builtins.int]"
+        main:7: note: Revealed type is "builtins.int"
         main:8: note: Revealed type is "Any"
         main:9: error: Incompatible types in assignment (expression has type "str", variable has type "int")
         main:10: error: Incompatible types in assignment (expression has type "str", variable has type "Union[int, float]")
diff --git a/tests/typecheck/models/test_primary_key.yml b/tests/typecheck/models/test_primary_key.yml
--- a/tests/typecheck/models/test_primary_key.yml
+++ b/tests/typecheck/models/test_primary_key.yml
@@ -2,8 +2,8 @@
   main: |
     from myapp.models import MyModel
     x = MyModel.objects.get(id=1)
-    reveal_type(x.id)  # N: Revealed type is "builtins.int*"
-    reveal_type(x.pk)  # N: Revealed type is "builtins.int*"
+    reveal_type(x.id)  # N: Revealed type is "builtins.int"
+    reveal_type(x.pk)  # N: Revealed type is "builtins.int"
 
     MyModel.objects.get(pk=1)
   installed_apps:
@@ -15,16 +15,16 @@
         from django.db import models
         class MyModel(models.Model):
             def __str__(self):
-                reveal_type(self.id)  # N: Revealed type is "builtins.int*"
-                reveal_type(self.pk)  # N: Revealed type is "builtins.int*"
+                reveal_type(self.id)  # N: Revealed type is "builtins.int"
+                reveal_type(self.pk)  # N: Revealed type is "builtins.int"
 
 
 - case: test_access_to_id_field_through_self_if_primary_key_is_defined
   main: |
     from myapp.models import MyModel
     x = MyModel.objects.get(id='a')
-    reveal_type(x.id)  # N: Revealed type is "builtins.str*"
-    reveal_type(x.pk)  # N: Revealed type is "builtins.str*"
+    reveal_type(x.id)  # N: Revealed type is "builtins.str"
+    reveal_type(x.pk)  # N: Revealed type is "builtins.str"
 
     MyModel.objects.get(pk='a')
   installed_apps:
@@ -37,16 +37,16 @@
         class MyModel(models.Model):
             id = models.CharField(max_length=10, primary_key=True)
             def __str__(self):
-                reveal_type(self.id)  # N: Revealed type is "builtins.str*"
-                reveal_type(self.pk)  # N: Revealed type is "builtins.str*"
+                reveal_type(self.id)  # N: Revealed type is "builtins.str"
+                reveal_type(self.pk)  # N: Revealed type is "builtins.str"
 
 
 - case: test_access_to_id_field_through_self_if_primary_key_has_different_name
   main: |
     from myapp.models import MyModel
     x = MyModel.objects.get(primary='a')
-    reveal_type(x.primary)  # N: Revealed type is "builtins.str*"
-    reveal_type(x.pk)  # N: Revealed type is "builtins.str*"
+    reveal_type(x.primary)  # N: Revealed type is "builtins.str"
+    reveal_type(x.pk)  # N: Revealed type is "builtins.str"
     x.id  # E: "MyModel" has no attribute "id"
 
     MyModel.objects.get(pk='a')
@@ -61,6 +61,6 @@
         class MyModel(models.Model):
             primary = models.CharField(max_length=10, primary_key=True)
             def __str__(self):
-                reveal_type(self.primary)  # N: Revealed type is "builtins.str*"
-                reveal_type(self.pk)  # N: Revealed type is "builtins.str*"
+                reveal_type(self.primary)  # N: Revealed type is "builtins.str"
+                reveal_type(self.pk)  # N: Revealed type is "builtins.str"
                 self.id  # E: "MyModel" has no attribute "id"
diff --git a/tests/typecheck/models/test_proxy_models.yml b/tests/typecheck/models/test_proxy_models.yml
--- a/tests/typecheck/models/test_proxy_models.yml
+++ b/tests/typecheck/models/test_proxy_models.yml
@@ -4,7 +4,7 @@
         Blog(publisher=Publisher())
         Blog.objects.create(publisher=Publisher())
         Blog().publisher = Publisher()
-        reveal_type(Blog().publisher)  # N: Revealed type is "myapp.models.PublisherProxy*"
+        reveal_type(Blog().publisher)  # N: Revealed type is "myapp.models.PublisherProxy"
     installed_apps:
         - myapp
     files:
diff --git a/tests/typecheck/test/test_client.yml b/tests/typecheck/test/test_client.yml
--- a/tests/typecheck/test/test_client.yml
+++ b/tests/typecheck/test/test_client.yml
@@ -26,8 +26,8 @@
       from django.test.client import RequestFactory, AsyncRequestFactory
       factory = RequestFactory()
       request = factory.get('foo')
-      reveal_type(request)  # N: Revealed type is "django.core.handlers.wsgi.WSGIRequest*"
+      reveal_type(request)  # N: Revealed type is "django.core.handlers.wsgi.WSGIRequest"
 
       async_factory = AsyncRequestFactory()
       async_request = async_factory.get('foo')
-      reveal_type(async_request)  # N: Revealed type is "django.core.handlers.asgi.ASGIRequest*"
+      reveal_type(async_request)  # N: Revealed type is "django.core.handlers.asgi.ASGIRequest"
diff --git a/tests/typecheck/test_config.yml b/tests/typecheck/test_config.yml
--- a/tests/typecheck/test_config.yml
+++ b/tests/typecheck/test_config.yml
@@ -2,8 +2,8 @@
     main: |
         from myapp.models import MyModel
         mymodel = MyModel(user_id=1)
-        reveal_type(mymodel.id)  # N: Revealed type is "builtins.int*"
-        reveal_type(mymodel.user)  # N: Revealed type is "django.contrib.auth.models.User*"
+        reveal_type(mymodel.id)  # N: Revealed type is "builtins.int"
+        reveal_type(mymodel.user)  # N: Revealed type is "django.contrib.auth.models.User"
         reveal_type(mymodel.objects)  # N: Revealed type is "django.db.models.manager.Manager[myapp.models.MyModel]"
     mypy_config: |
         [mypy.plugins.django-stubs]
@@ -20,13 +20,13 @@
                 class MyModel(models.Model):
                     user = models.ForeignKey('auth.User', on_delete=models.CASCADE)
                 if TYPE_CHECKING:
-                    reveal_type(MyModel().user)  # N: Revealed type is "django.contrib.auth.models.User*"
+                    reveal_type(MyModel().user)  # N: Revealed type is "django.contrib.auth.models.User"
 
 -   case: generate_pyproject_toml_and_settings_file_from_installed_apps_key
     main: |
         from myapp.models import MyModel
         mymodel = MyModel(user_id=1)
-        reveal_type(mymodel.id)  # N: Revealed type is "builtins.int*"
+        reveal_type(mymodel.id)  # N: Revealed type is "builtins.int"
     installed_apps:
         - django.contrib.auth
         - myapp
diff --git a/tests/typecheck/test_formsets.yml b/tests/typecheck/test_formsets.yml
--- a/tests/typecheck/test_formsets.yml
+++ b/tests/typecheck/test_formsets.yml
@@ -6,7 +6,7 @@
     ArticleFS: Type[forms.BaseInlineFormSet[Article, Category, Any]] = forms.inlineformset_factory(Category, Article)
     ArticleFS(instance=Article())  # E: Argument "instance" to "BaseInlineFormSet" has incompatible type "Article"; expected "Optional[Category]"
     fs = ArticleFS(instance=Category())
-    reveal_type(fs.instance)  # N: Revealed type is "myapp.models.Category*"
+    reveal_type(fs.instance)  # N: Revealed type is "myapp.models.Category"
   installed_apps:
     - myapp
   files:
diff --git a/tests/typecheck/test_settings.yml b/tests/typecheck/test_settings.yml
--- a/tests/typecheck/test_settings.yml
+++ b/tests/typecheck/test_settings.yml
@@ -5,8 +5,8 @@
         # standard settings
         reveal_type(settings.AUTH_USER_MODEL)  # N: Revealed type is "builtins.str"
         reveal_type(settings.ROOT_DIR)  # N: Revealed type is "builtins.str"
-        reveal_type(settings.APPS_DIR)  # N: Revealed type is "pathlib.Path*"
-        reveal_type(settings.NUMBERS)  # N: Revealed type is "builtins.list[builtins.str*]"
+        reveal_type(settings.APPS_DIR)  # N: Revealed type is "pathlib.Path"
+        reveal_type(settings.NUMBERS)  # N: Revealed type is "builtins.list[builtins.str]"
         reveal_type(settings.DICT)  # N: Revealed type is "builtins.dict[Any, Any]"
     custom_settings: |
         from base import *
@@ -37,8 +37,8 @@
         from settings.basic_settings import *
     main: |
         from django.conf import settings
-        reveal_type(settings.MEDIA_ROOT)  # N: Revealed type is "pathlib.Path*"
-        reveal_type(settings.MEDIA_ROOT / 'part')  # N: Revealed type is "pathlib.Path*"
+        reveal_type(settings.MEDIA_ROOT)  # N: Revealed type is "pathlib.Path"
+        reveal_type(settings.MEDIA_ROOT / 'part')  # N: Revealed type is "pathlib.Path"
     files:
         -   path: settings/__init__.py
         -   path: settings/basic_settings.py
diff --git a/tests/typecheck/test_shortcuts.yml b/tests/typecheck/test_shortcuts.yml
--- a/tests/typecheck/test_shortcuts.yml
+++ b/tests/typecheck/test_shortcuts.yml
@@ -3,13 +3,13 @@
         from django.shortcuts import get_object_or_404, get_list_or_404
         from myapp.models import MyModel
 
-        reveal_type(get_object_or_404(MyModel))  # N: Revealed type is "myapp.models.MyModel*"
-        reveal_type(get_object_or_404(MyModel.objects))  # N: Revealed type is "myapp.models.MyModel*"
-        reveal_type(get_object_or_404(MyModel.objects.get_queryset()))  # N: Revealed type is "myapp.models.MyModel*"
+        reveal_type(get_object_or_404(MyModel))  # N: Revealed type is "myapp.models.MyModel"
+        reveal_type(get_object_or_404(MyModel.objects))  # N: Revealed type is "myapp.models.MyModel"
+        reveal_type(get_object_or_404(MyModel.objects.get_queryset()))  # N: Revealed type is "myapp.models.MyModel"
 
-        reveal_type(get_list_or_404(MyModel))  # N: Revealed type is "builtins.list[myapp.models.MyModel*]"
-        reveal_type(get_list_or_404(MyModel.objects))  # N: Revealed type is "builtins.list[myapp.models.MyModel*]"
-        reveal_type(get_list_or_404(MyModel.objects.get_queryset()))  # N: Revealed type is "builtins.list[myapp.models.MyModel*]"
+        reveal_type(get_list_or_404(MyModel))  # N: Revealed type is "builtins.list[myapp.models.MyModel]"
+        reveal_type(get_list_or_404(MyModel.objects))  # N: Revealed type is "builtins.list[myapp.models.MyModel]"
+        reveal_type(get_list_or_404(MyModel.objects.get_queryset()))  # N: Revealed type is "builtins.list[myapp.models.MyModel]"
     installed_apps:
         - myapp
     files:
diff --git a/tests/typecheck/utils/test_datastructures.yml b/tests/typecheck/utils/test_datastructures.yml
--- a/tests/typecheck/utils/test_datastructures.yml
+++ b/tests/typecheck/utils/test_datastructures.yml
@@ -10,39 +10,39 @@
       d3: Tuple[Tuple[str, List[Union[str, int]]], ...] = (('foo', ['Foo']), ('bar', [2, 3]))
       var3 = MultiValueDict(d3)
       reveal_type(var1)  # N: Revealed type is "django.utils.datastructures.MultiValueDict[Any, Any]"
-      reveal_type(var2)  # N: Revealed type is "django.utils.datastructures.MultiValueDict[builtins.str*, Union[builtins.str, builtins.int]]"
-      reveal_type(var3)  # N: Revealed type is "django.utils.datastructures.MultiValueDict[builtins.str*, Union[builtins.str, builtins.int]]"
+      reveal_type(var2)  # N: Revealed type is "django.utils.datastructures.MultiValueDict[builtins.str, Union[builtins.str, builtins.int]]"
+      reveal_type(var3)  # N: Revealed type is "django.utils.datastructures.MultiValueDict[builtins.str, Union[builtins.str, builtins.int]]"
 
       # __getitem__, get, getlist (with proofs)
       d = MultiValueDict({'foo': ['Foo']})
       d.setlist('bar', [])
       # actually 'Foo'
-      reveal_type(d['foo'])  # N: Revealed type is "Union[builtins.str*, builtins.list[builtins.object]]"
+      reveal_type(d['foo'])  # N: Revealed type is "Union[builtins.str, builtins.list[builtins.object]]"
       # actually []
-      reveal_type(d['bar'])  # N: Revealed type is "Union[builtins.str*, builtins.list[builtins.object]]"
+      reveal_type(d['bar'])  # N: Revealed type is "Union[builtins.str, builtins.list[builtins.object]]"
       # actually None
-      reveal_type(d.get('bar'))  # N: Revealed type is "Union[builtins.str*, None]"
+      reveal_type(d.get('bar'))  # N: Revealed type is "Union[builtins.str, None]"
       # actually 1
-      reveal_type(d.get('bar', 1))  # N: Revealed type is "Union[builtins.str, builtins.int*]"
+      reveal_type(d.get('bar', 1))  # N: Revealed type is "Union[builtins.str, builtins.int]"
       # actually []
       reveal_type(d.getlist('bar'))  # N: Revealed type is "builtins.list[builtins.str]"
       # actually []
-      reveal_type(d.getlist('bar', [1]))  # N: Revealed type is "Union[builtins.list[builtins.str], builtins.list*[builtins.int*]]"
+      reveal_type(d.getlist('bar', [1]))  # N: Revealed type is "Union[builtins.list[builtins.str], builtins.list[builtins.int]]"
       # actually True (note that default can be not a list)
-      reveal_type(d.getlist('baz', True))  # N: Revealed type is "Union[builtins.list[builtins.str], builtins.bool*]"
+      reveal_type(d.getlist('baz', True))  # N: Revealed type is "Union[builtins.list[builtins.str], builtins.bool]"
 
       # setters
-      reveal_type(d.setlistdefault('baz'))  # N: Revealed type is "builtins.list[builtins.str*]"
+      reveal_type(d.setlistdefault('baz'))  # N: Revealed type is "builtins.list[builtins.str]"
       d.setlistdefault('baz', [1])  # E: List item 0 has incompatible type "int"; expected "str"
-      reveal_type(d.setlistdefault('baz', []))  # N: Revealed type is "builtins.list[builtins.str*]"
+      reveal_type(d.setlistdefault('baz', []))  # N: Revealed type is "builtins.list[builtins.str]"
       d.appendlist('baz', 'Baz')
       d.appendlist('baz', 1)  # E: Argument 2 to "appendlist" of "MultiValueDict" has incompatible type "int"; expected "str"
 
       # iterators
       # actually [('foo', 'Foo'), ('bar', [])]
-      reveal_type(list(d.items()))  # N: Revealed type is "builtins.list[Tuple[builtins.str*, Union[builtins.str*, builtins.list[builtins.object]]]]"
-      reveal_type(list(d.keys()))  # N: Revealed type is "builtins.list[builtins.str*]"
+      reveal_type(list(d.items()))  # N: Revealed type is "builtins.list[Tuple[builtins.str, Union[builtins.str, builtins.list[builtins.object]]]]"
+      reveal_type(list(d.keys()))  # N: Revealed type is "builtins.list[builtins.str]"
       # actually ['Foo', []]
-      reveal_type(list(d.values()))  # N: Revealed type is "builtins.list[Union[builtins.str*, builtins.list[builtins.object]]]"
+      reveal_type(list(d.values()))  # N: Revealed type is "builtins.list[Union[builtins.str, builtins.list[builtins.object]]]"
       # actually {'foo': 'Foo', 'bar': []}
-      reveal_type(d.dict())  # N: Revealed type is "builtins.dict[builtins.str*, Union[builtins.str*, builtins.list[builtins.object]]]"
+      reveal_type(d.dict())  # N: Revealed type is "builtins.dict[builtins.str, Union[builtins.str, builtins.list[builtins.object]]]"
diff --git a/tests/typecheck/utils/test_encoding.yml b/tests/typecheck/utils/test_encoding.yml
--- a/tests/typecheck/utils/test_encoding.yml
+++ b/tests/typecheck/utils/test_encoding.yml
@@ -5,10 +5,10 @@
           pass
 
       reveal_type(force_bytes(123))  # N: Revealed type is "builtins.bytes"
-      reveal_type(force_bytes(123, strings_only=True))  # N: Revealed type is "builtins.int*"
+      reveal_type(force_bytes(123, strings_only=True))  # N: Revealed type is "builtins.int"
 
       reveal_type(force_str(123))  # N: Revealed type is "builtins.str"
-      reveal_type(force_str(123, strings_only=True))  # N: Revealed type is "builtins.int*"
-      reveal_type(force_str('foo'))  # N: Revealed type is "builtins.str*"
-      reveal_type(force_str('foo', strings_only=True))  # N: Revealed type is "builtins.str*"
-      reveal_type(force_str(S('foo'), strings_only=True))  # N: Revealed type is "main.S*"
+      reveal_type(force_str(123, strings_only=True))  # N: Revealed type is "builtins.int"
+      reveal_type(force_str('foo'))  # N: Revealed type is "builtins.str"
+      reveal_type(force_str('foo', strings_only=True))  # N: Revealed type is "builtins.str"
+      reveal_type(force_str(S('foo'), strings_only=True))  # N: Revealed type is "main.S"
diff --git a/tests/typecheck/utils/test_functional.yml b/tests/typecheck/utils/test_functional.yml
--- a/tests/typecheck/utils/test_functional.yml
+++ b/tests/typecheck/utils/test_functional.yml
@@ -7,12 +7,12 @@
           @cached_property
           def attr(self) -> List[str]: ...
 
-          reveal_type(attr)      # N: Revealed type is "django.utils.functional.cached_property[builtins.list*[builtins.str]]"
+          reveal_type(attr)      # N: Revealed type is "django.utils.functional.cached_property[builtins.list[builtins.str]]"
           reveal_type(attr.name) # N: Revealed type is "builtins.str"
 
-      reveal_type(Foo.attr)      # N: Revealed type is "django.utils.functional.cached_property[builtins.list*[builtins.str]]"
-      reveal_type(Foo.attr.func) # N: Revealed type is "def (*Any, **Any) -> builtins.list*[builtins.str]"
+      reveal_type(Foo.attr)      # N: Revealed type is "django.utils.functional.cached_property[builtins.list[builtins.str]]"
+      reveal_type(Foo.attr.func) # N: Revealed type is "def (*Any, **Any) -> builtins.list[builtins.str]"
 
       f = Foo()
-      reveal_type(f.attr)        # N: Revealed type is "builtins.list*[builtins.str]"
+      reveal_type(f.attr)        # N: Revealed type is "builtins.list[builtins.str]"
       f.attr.name                # E: "List[str]" has no attribute "name"
diff --git a/tests/typecheck/views/generic/test_edit.yml b/tests/typecheck/views/generic/test_edit.yml
--- a/tests/typecheck/views/generic/test_edit.yml
+++ b/tests/typecheck/views/generic/test_edit.yml
@@ -46,11 +46,11 @@
 
         class MyCreateView(CreateView[Article, ArticleModelForm]):
             def some(self) -> None:
-                reveal_type(self.get_form_class())  # N: Revealed type is "Type[main.ArticleModelForm*]"
+                reveal_type(self.get_form_class())  # N: Revealed type is "Type[main.ArticleModelForm]"
 
         class MyUpdateView(UpdateView[Article, ArticleModelForm]):
             def some(self) -> None:
-                reveal_type(self.get_form_class()) # N: Revealed type is "Type[main.ArticleModelForm*]"
+                reveal_type(self.get_form_class()) # N: Revealed type is "Type[main.ArticleModelForm]"
     installed_apps:
         - myapp
     files:
@@ -79,7 +79,7 @@
 
         class MyCreateView(CreateView[Article, ArticleModelForm]):
             def some(self) -> None:
-                reveal_type(self.get_form())  # N: Revealed type is "main.ArticleModelForm*"
+                reveal_type(self.get_form())  # N: Revealed type is "main.ArticleModelForm"
                 reveal_type(self.get_form(SubArticleModelForm))  # N: Revealed type is "main.SubArticleModelForm"
                 reveal_type(self.get_form(AnotherArticleModelForm))  # N: Revealed type is "main.AnotherArticleModelForm"  # E: Argument 1 to "get_form" of "FormMixin" has incompatible type "Type[AnotherArticleModelForm]"; expected "Optional[Type[ArticleModelForm]]"
     installed_apps:
diff --git a/tests/typecheck/views/test_function_based_views.yml b/tests/typecheck/views/test_function_based_views.yml
--- a/tests/typecheck/views/test_function_based_views.yml
+++ b/tests/typecheck/views/test_function_based_views.yml
@@ -24,25 +24,25 @@
 
       def empty_response(request: HttpRequest) -> HttpResponse:
           response = HttpResponse()
-          reveal_type(response.content)  # N: Revealed type is "builtins.bytes*"
+          reveal_type(response.content)  # N: Revealed type is "builtins.bytes"
           return response
 
       def str_response(request: HttpRequest) -> HttpResponse:
           response = HttpResponse()
           response.content = 'It works!'
-          reveal_type(response.content)  # N: Revealed type is "builtins.bytes*"
+          reveal_type(response.content)  # N: Revealed type is "builtins.bytes"
           return response
 
       def bytes_response(request: HttpRequest) -> HttpResponse:
           response = HttpResponse()
           response.content = b'It works!'
-          reveal_type(response.content)  # N: Revealed type is "builtins.bytes*"
+          reveal_type(response.content)  # N: Revealed type is "builtins.bytes"
           return response
 
       def object_response(request: HttpRequest) -> HttpResponse:
           response = HttpResponse()
           response.content = _('It works!')
-          reveal_type(response.content)  # N: Revealed type is "builtins.bytes*"
+          reveal_type(response.content)  # N: Revealed type is "builtins.bytes"
           return response
 
 -   case: streaming_http_response
@@ -74,29 +74,29 @@
 
       def empty_response(request: HttpRequest) -> StreamingHttpResponse:
           response = StreamingHttpResponse()
-          reveal_type(response.streaming_content)  # N: Revealed type is "typing.Iterator*[builtins.bytes]"
+          reveal_type(response.streaming_content)  # N: Revealed type is "typing.Iterator[builtins.bytes]"
           return response
 
       def str_response(request: HttpRequest) -> StreamingHttpResponse:
           response = StreamingHttpResponse()
           response.streaming_content = ['It works!']
-          reveal_type(response.streaming_content)  # N: Revealed type is "typing.Iterator*[builtins.bytes]"
+          reveal_type(response.streaming_content)  # N: Revealed type is "typing.Iterator[builtins.bytes]"
           return response
 
       def bytes_response(request: HttpRequest) -> StreamingHttpResponse:
           response = StreamingHttpResponse()
           response.streaming_content = [b'It works!']
-          reveal_type(response.streaming_content)  # N: Revealed type is "typing.Iterator*[builtins.bytes]"
+          reveal_type(response.streaming_content)  # N: Revealed type is "typing.Iterator[builtins.bytes]"
           return response
 
       def object_response(request: HttpRequest) -> StreamingHttpResponse:
           response = StreamingHttpResponse()
           response.streaming_content = [_('It works!')]
-          reveal_type(response.streaming_content)  # N: Revealed type is "typing.Iterator*[builtins.bytes]"
+          reveal_type(response.streaming_content)  # N: Revealed type is "typing.Iterator[builtins.bytes]"
           return response
 
       def mixed_response(request: HttpRequest) -> StreamingHttpResponse:
           response = StreamingHttpResponse()
           response.streaming_content = [_('Yes'), '/', _('No')]
-          reveal_type(response.streaming_content)  # N: Revealed type is "typing.Iterator*[builtins.bytes]"
+          reveal_type(response.streaming_content)  # N: Revealed type is "typing.Iterator[builtins.bytes]"
           return response