@@ -1064,13 +1064,11 @@ def setup_self_type(self) -> None:
1064
1064
assert self .type is not None
1065
1065
info = self .type
1066
1066
if info .self_type is not None :
1067
- if has_placeholder (info .self_type .upper_bound ) or has_placeholder (
1068
- info .self_type .default
1069
- ):
1067
+ if has_placeholder (info .self_type .upper_bound ):
1070
1068
# Similar to regular (user defined) type variables.
1071
1069
self .process_placeholder (
1072
1070
None ,
1073
- "Self upper bound or default " ,
1071
+ "Self upper bound" ,
1074
1072
info ,
1075
1073
force_progress = info .self_type .upper_bound != fill_typevars (info ),
1076
1074
)
@@ -4026,14 +4024,12 @@ def process_typevar_declaration(self, s: AssignmentStmt) -> bool:
4026
4024
call .analyzed .upper_bound = upper_bound
4027
4025
call .analyzed .values = values
4028
4026
call .analyzed .default = default
4029
- if (
4030
- any (has_placeholder (v ) for v in values )
4031
- or has_placeholder (upper_bound )
4032
- or has_placeholder (default )
4033
- ):
4034
- self .process_placeholder (
4035
- None , "TypeVar values, upper bound, or default" , s , force_progress = updated
4036
- )
4027
+ if any (has_placeholder (v ) for v in values ):
4028
+ self .process_placeholder (None , "TypeVar values" , s , force_progress = updated )
4029
+ elif has_placeholder (upper_bound ):
4030
+ self .process_placeholder (None , "TypeVar upper bound" , s , force_progress = updated )
4031
+ elif has_placeholder (default ):
4032
+ self .process_placeholder (None , "TypeVar default" , s , force_progress = updated )
4037
4033
4038
4034
self .add_symbol (name , call .analyzed , s )
4039
4035
return True
@@ -4209,8 +4205,14 @@ def process_paramspec_declaration(self, s: AssignmentStmt) -> bool:
4209
4205
)
4210
4206
paramspec_var .line = call .line
4211
4207
call .analyzed = paramspec_var
4208
+ updated = True
4212
4209
else :
4213
4210
assert isinstance (call .analyzed , ParamSpecExpr )
4211
+ updated = default != call .analyzed .default
4212
+ call .analyzed .default = default
4213
+ if has_placeholder (default ):
4214
+ self .process_placeholder (None , "ParamSpec default" , s , force_progress = updated )
4215
+
4214
4216
self .add_symbol (name , call .analyzed , s )
4215
4217
return True
4216
4218
@@ -4250,8 +4252,14 @@ def process_typevartuple_declaration(self, s: AssignmentStmt) -> bool:
4250
4252
)
4251
4253
typevartuple_var .line = call .line
4252
4254
call .analyzed = typevartuple_var
4255
+ updated = True
4253
4256
else :
4254
4257
assert isinstance (call .analyzed , TypeVarTupleExpr )
4258
+ updated = default != call .analyzed .default
4259
+ call .analyzed .default = default
4260
+ if has_placeholder (default ):
4261
+ self .process_placeholder (None , "TypeVarTuple default" , s , force_progress = updated )
4262
+
4255
4263
self .add_symbol (name , call .analyzed , s )
4256
4264
return True
4257
4265
0 commit comments