@@ -51,7 +51,7 @@ def analyze_namedtuple_classdef(self, defn: ClassDef) -> Optional[TypeInfo]:
51
51
node .kind = GDEF # TODO in process_namedtuple_definition also applies here
52
52
items , types , default_items = self .check_namedtuple_classdef (defn )
53
53
info = self .build_namedtuple_typeinfo (
54
- defn .name , items , types , default_items )
54
+ defn .name , items , types , default_items , defn . line )
55
55
node .node = info
56
56
defn .info .replaced = info
57
57
defn .info = info
@@ -160,7 +160,7 @@ def check_namedtuple(self,
160
160
name = var_name
161
161
else :
162
162
name = 'namedtuple@' + str (call .line )
163
- info = self .build_namedtuple_typeinfo (name , [], [], {})
163
+ info = self .build_namedtuple_typeinfo (name , [], [], {}, node . line )
164
164
self .store_namedtuple_info (info , name , call , is_typed )
165
165
return info
166
166
name = cast (Union [StrExpr , BytesExpr , UnicodeExpr ], call .args [0 ]).value
@@ -174,7 +174,7 @@ def check_namedtuple(self,
174
174
}
175
175
else :
176
176
default_items = {}
177
- info = self .build_namedtuple_typeinfo (name , items , types , default_items )
177
+ info = self .build_namedtuple_typeinfo (name , items , types , default_items , node . line )
178
178
# Store it as a global just in case it would remain anonymous.
179
179
# (Or in the nearest class if there is one.)
180
180
self .store_namedtuple_info (info , name , call , is_typed )
@@ -290,7 +290,8 @@ def fail_namedtuple_arg(self, message: str, context: Context
290
290
return [], [], [], False
291
291
292
292
def build_namedtuple_typeinfo (self , name : str , items : List [str ], types : List [Type ],
293
- default_items : Mapping [str , Expression ]) -> TypeInfo :
293
+ default_items : Mapping [str , Expression ],
294
+ line : int ) -> TypeInfo :
294
295
strtype = self .api .named_type ('__builtins__.str' )
295
296
implicit_any = AnyType (TypeOfAny .special_form )
296
297
basetuple_type = self .api .named_type ('__builtins__.tuple' , [implicit_any ])
@@ -363,6 +364,7 @@ def add_method(funcname: str,
363
364
function_type )
364
365
signature .variables = [tvd ]
365
366
func = FuncDef (funcname , args , Block ([]))
367
+ func .line = line
366
368
func .info = info
367
369
func .is_class = is_classmethod
368
370
func .type = set_callable_name (signature , func )
0 commit comments