@@ -558,7 +558,8 @@ class NumReferenceDerivative(DiscretizationProperty):
558
558
def __new__ (cls ,
559
559
ref_axes : int | tuple [tuple [int , int ], ...] | None = None ,
560
560
operand : Operand | None = None ,
561
- dofdesc : DOFDescriptor | None = None ) -> "NumReferenceDerivative" :
561
+ dofdesc : DOFDescriptor | None = None ,
562
+ ) -> "NumReferenceDerivative" :
562
563
# If the constructor is handed a multivector object, return an
563
564
# object array of the operator applied to each of the
564
565
# coefficients in the multivector.
@@ -567,7 +568,9 @@ def __new__(cls,
567
568
def make_op (operand_i ):
568
569
return cls (ref_axes , operand_i , as_dofdesc (dofdesc ))
569
570
570
- return componentwise (make_op , operand )
571
+ # FIXME: mypy is right: new should return `cls` instances and we're
572
+ # abusing it to vectorize the call like this.
573
+ return componentwise (make_op , operand ) # type: ignore[return-value]
571
574
else :
572
575
return DiscretizationProperty .__new__ (cls )
573
576
@@ -1140,7 +1143,7 @@ def __new__(cls,
1140
1143
def make_op (operand_i ):
1141
1144
return cls (from_dd , to_dd , operand_i )
1142
1145
1143
- return componentwise (make_op , operand )
1146
+ return componentwise (make_op , operand ) # type: ignore[return-value]
1144
1147
else :
1145
1148
return Expression .__new__ (cls )
1146
1149
@@ -1185,7 +1188,7 @@ def __new__(cls,
1185
1188
def make_op (operand_i ):
1186
1189
return cls (operand_i )
1187
1190
1188
- return componentwise (make_op , operand )
1191
+ return componentwise (make_op , operand ) # type: ignore[return-value]
1189
1192
else :
1190
1193
return Expression .__new__ (cls )
1191
1194
@@ -1248,7 +1251,7 @@ def __new__(cls,
1248
1251
def make_op (operand_i ):
1249
1252
return cls (operand_i , as_dofdesc (dofdesc ))
1250
1253
1251
- return componentwise (make_op , operand )
1254
+ return componentwise (make_op , operand ) # type: ignore[return-value]
1252
1255
else :
1253
1256
return Expression .__new__ (cls )
1254
1257
0 commit comments