@@ -1314,7 +1314,14 @@ class Decorator(SymbolNode, Statement):
13141314 A single Decorator object can include any number of function decorators.
13151315 """
13161316
1317- __slots__ = ("func" , "decorators" , "original_decorators" , "var" , "is_overload" )
1317+ __slots__ = (
1318+ "func" ,
1319+ "decorators" ,
1320+ "original_decorators" ,
1321+ "var" ,
1322+ "is_overload" ,
1323+ "is_cached_property" ,
1324+ )
13181325
13191326 __match_args__ = ("decorators" , "var" , "func" )
13201327
@@ -1333,6 +1340,7 @@ def __init__(self, func: FuncDef, decorators: list[Expression], var: Var) -> Non
13331340 self .original_decorators = decorators .copy ()
13341341 self .var = var
13351342 self .is_overload = False
1343+ self .is_cached_property = False
13361344
13371345 @property
13381346 def name (self ) -> str :
@@ -1363,20 +1371,23 @@ def serialize(self) -> JsonDict:
13631371 "func" : self .func .serialize (),
13641372 "var" : self .var .serialize (),
13651373 "is_overload" : self .is_overload ,
1374+ "is_cached_property" : self .is_cached_property ,
13661375 }
13671376
13681377 @classmethod
13691378 def deserialize (cls , data : JsonDict ) -> Decorator :
13701379 assert data [".class" ] == "Decorator"
13711380 dec = Decorator (FuncDef .deserialize (data ["func" ]), [], Var .deserialize (data ["var" ]))
13721381 dec .is_overload = data ["is_overload" ]
1382+ dec .is_cached_property = data .get ("is_cached_property" , False )
13731383 return dec
13741384
13751385 def write (self , data : WriteBuffer ) -> None :
13761386 write_tag (data , DECORATOR )
13771387 self .func .write (data )
13781388 self .var .write (data )
13791389 write_bool (data , self .is_overload )
1390+ write_bool (data , self .is_cached_property )
13801391 write_tag (data , END_TAG )
13811392
13821393 @classmethod
@@ -1387,6 +1398,7 @@ def read(cls, data: ReadBuffer) -> Decorator:
13871398 var = Var .read (data )
13881399 dec = Decorator (func , [], var )
13891400 dec .is_overload = read_bool (data )
1401+ dec .is_cached_property = read_bool (data )
13901402 assert read_tag (data ) == END_TAG
13911403 return dec
13921404
0 commit comments