@@ -1065,13 +1065,11 @@ def setup_self_type(self) -> None:
1065
1065
assert self .type is not None
1066
1066
info = self .type
1067
1067
if info .self_type is not None :
1068
- if has_placeholder (info .self_type .upper_bound ) or has_placeholder (
1069
- info .self_type .default
1070
- ):
1068
+ if has_placeholder (info .self_type .upper_bound ):
1071
1069
# Similar to regular (user defined) type variables.
1072
1070
self .process_placeholder (
1073
1071
None ,
1074
- "Self upper bound or default " ,
1072
+ "Self upper bound" ,
1075
1073
info ,
1076
1074
force_progress = info .self_type .upper_bound != fill_typevars (info ),
1077
1075
)
@@ -4044,14 +4042,12 @@ def process_typevar_declaration(self, s: AssignmentStmt) -> bool:
4044
4042
call .analyzed .upper_bound = upper_bound
4045
4043
call .analyzed .values = values
4046
4044
call .analyzed .default = default
4047
- if (
4048
- any (has_placeholder (v ) for v in values )
4049
- or has_placeholder (upper_bound )
4050
- or has_placeholder (default )
4051
- ):
4052
- self .process_placeholder (
4053
- None , "TypeVar values, upper bound, or default" , s , force_progress = updated
4054
- )
4045
+ if any (has_placeholder (v ) for v in values ):
4046
+ self .process_placeholder (None , "TypeVar values" , s , force_progress = updated )
4047
+ elif has_placeholder (upper_bound ):
4048
+ self .process_placeholder (None , "TypeVar upper bound" , s , force_progress = updated )
4049
+ elif has_placeholder (default ):
4050
+ self .process_placeholder (None , "TypeVar default" , s , force_progress = updated )
4055
4051
4056
4052
self .add_symbol (name , call .analyzed , s )
4057
4053
return True
@@ -4227,8 +4223,14 @@ def process_paramspec_declaration(self, s: AssignmentStmt) -> bool:
4227
4223
)
4228
4224
paramspec_var .line = call .line
4229
4225
call .analyzed = paramspec_var
4226
+ updated = True
4230
4227
else :
4231
4228
assert isinstance (call .analyzed , ParamSpecExpr )
4229
+ updated = default != call .analyzed .default
4230
+ call .analyzed .default = default
4231
+ if has_placeholder (default ):
4232
+ self .process_placeholder (None , "ParamSpec default" , s , force_progress = updated )
4233
+
4232
4234
self .add_symbol (name , call .analyzed , s )
4233
4235
return True
4234
4236
@@ -4268,8 +4270,14 @@ def process_typevartuple_declaration(self, s: AssignmentStmt) -> bool:
4268
4270
)
4269
4271
typevartuple_var .line = call .line
4270
4272
call .analyzed = typevartuple_var
4273
+ updated = True
4271
4274
else :
4272
4275
assert isinstance (call .analyzed , TypeVarTupleExpr )
4276
+ updated = default != call .analyzed .default
4277
+ call .analyzed .default = default
4278
+ if has_placeholder (default ):
4279
+ self .process_placeholder (None , "TypeVarTuple default" , s , force_progress = updated )
4280
+
4273
4281
self .add_symbol (name , call .analyzed , s )
4274
4282
return True
4275
4283
0 commit comments