# bif-coverage status - one line per public AST field.
# Format: <TClass>.<Field>  <serialise|safe>
#   serialise  must appear in EncodeStmt/EncodeExpr AND ReadStmt/ReadExpr
#   safe       intentionally not serialised (set by semantic etc.)
# Regenerate from scratch with: bif-coverage --reset

# TIntLiteral (uAST.pas:36)
TIntLiteral.Value  serialise
TIntLiteral.IsUInt64  safe

# TFloatLiteral (uAST.pas:44)
TFloatLiteral.Value  serialise

# TStringLiteral (uAST.pas:49)
TStringLiteral.Value  serialise
TStringLiteral.IsCharCoerce  safe
TStringLiteral.CharOrdValue  safe

# TStringSubscriptExpr (uAST.pas:56)
TStringSubscriptExpr.StrExpr  serialise
TStringSubscriptExpr.IndexExpr  serialise

# TArrayLiteralExpr (uAST.pas:63)
TArrayLiteralExpr.Elements  serialise
TArrayLiteralExpr.IsConstArray  safe

# TSetRangeExpr (uAST.pas:80)
TSetRangeExpr.LowExpr  serialise
TSetRangeExpr.HighExpr  serialise

# TNilLiteral (uAST.pas:87)

# TIdentExpr (uAST.pas:97)
TIdentExpr.Name  serialise
TIdentExpr.ParamMode  safe
TIdentExpr.IsConstant  safe
TIdentExpr.ConstValue  safe
TIdentExpr.ConstString  safe
TIdentExpr.IsGlobal  safe
TIdentExpr.IsThreadVar  safe
TIdentExpr.IsImplicitSelf  safe
TIdentExpr.IsImplicitSelfMethod  safe
TIdentExpr.IsMetaclassRef  safe
TIdentExpr.ConstArraySymbol  safe

# TFieldAccessExpr (uAST.pas:118)
TFieldAccessExpr.RecordName  serialise
TFieldAccessExpr.FieldName  serialise
TFieldAccessExpr.Base  serialise
TFieldAccessExpr.FieldInfo  safe
TFieldAccessExpr.IsConstant  safe
TFieldAccessExpr.ConstValue  safe
TFieldAccessExpr.ConstString  safe
TFieldAccessExpr.ConstArraySymbol  safe
TFieldAccessExpr.IsConstructorCall  safe
TFieldAccessExpr.IsClassAccess  safe
TFieldAccessExpr.PropRead  safe
TFieldAccessExpr.PropOwnerType  safe
TFieldAccessExpr.PropAccessorVSlot  safe
TFieldAccessExpr.IsImplicitSelf  safe
TFieldAccessExpr.IsMethodCall  safe
TFieldAccessExpr.IsInterfaceCall  safe
TFieldAccessExpr.IsGlobal  safe
TFieldAccessExpr.IsClassNameAccess  safe
TFieldAccessExpr.IsClassTypeAccess  safe
TFieldAccessExpr.IsBuiltinToString  safe
TFieldAccessExpr.IsVarParam  safe
TFieldAccessExpr.PropIndexExpr  serialise
TFieldAccessExpr.IsCharAccess  safe
TFieldAccessExpr.IsArrayAccess  safe

# TIsExpr (uAST.pas:151)
TIsExpr.Obj  serialise
TIsExpr.TypeName  serialise

# TAsExpr (uAST.pas:159)
TAsExpr.Obj  serialise
TAsExpr.TypeName  serialise

# TSupportsExpr (uAST.pas:168)
TSupportsExpr.Obj  serialise
TSupportsExpr.IntfTypeName  serialise
TSupportsExpr.OutVarName  serialise
TSupportsExpr.OutVarIsGlobal  safe

# TInheritedCallExpr (uAST.pas:182)
TInheritedCallExpr.Name  serialise
TInheritedCallExpr.Args  serialise

# TBinaryExpr (uAST.pas:199)
TBinaryExpr.Op  serialise
TBinaryExpr.Left  serialise
TBinaryExpr.Right  serialise

# TNotExpr (uAST.pas:207)
TNotExpr.Expr  serialise

# TAssignment (uAST.pas:219)
TAssignment.Name  serialise
TAssignment.Expr  serialise
TAssignment.IsVarParam  safe
TAssignment.IsGlobal  safe
TAssignment.IsThreadVar  safe
TAssignment.IsWeakLhs  safe
TAssignment.ImplicitSelfField  safe

# TIfStmt (uAST.pas:235)
TIfStmt.Condition  serialise
TIfStmt.ThenStmt  serialise
TIfStmt.ElseStmt  serialise

# TCompoundStmt (uAST.pas:243)
TCompoundStmt.Stmts  serialise

# TWhileStmt (uAST.pas:250)
TWhileStmt.Condition  serialise
TWhileStmt.Body  serialise

# TRepeatStmt (uAST.pas:257)
TRepeatStmt.Body  serialise
TRepeatStmt.Condition  serialise

# TForStmt (uAST.pas:264)
TForStmt.VarName  serialise
TForStmt.IsGlobal  safe
TForStmt.StartExpr  serialise
TForStmt.EndExpr  serialise
TForStmt.IsDownTo  serialise
TForStmt.Body  serialise

# TForInStmt (uAST.pas:275)
TForInStmt.VarName  serialise
TForInStmt.VarIsGlobal  safe
TForInStmt.CollExpr  serialise
TForInStmt.Body  serialise
TForInStmt.IsArrayIter  safe
TForInStmt.EnumVarName  safe
TForInStmt.ResolvedEnumTypeName  safe
TForInStmt.IdxVarName  safe
TForInStmt.ArrayLow  safe
TForInStmt.ArrayHigh  safe
TForInStmt.IsDynArrayIter  safe
TForInStmt.IsStringIter  safe
TForInStmt.IsCodePointIter  safe
TForInStmt.AdvVarName  safe
TForInStmt.IsSetIter  safe
TForInStmt.SetBitCount  safe
TForInStmt.SetMaskVarName  safe
TForInStmt.SetIsJumbo  safe

# TTryFinallyStmt (uAST.pas:312)
TTryFinallyStmt.TryBody  serialise
TTryFinallyStmt.FinallyBody  serialise

# TTryExceptStmt (uAST.pas:329)
TTryExceptStmt.TryBody  serialise
TTryExceptStmt.Handlers  serialise
TTryExceptStmt.ElseBody  serialise
TTryExceptStmt.ExceptBody  serialise

# TRaiseStmt (uAST.pas:342)
TRaiseStmt.Expr  serialise

# TExitStmt (uAST.pas:353)
TExitStmt.Value  serialise
TExitStmt.ResultAssign  safe

# TBreakStmt (uAST.pas:361)

# TContinueStmt (uAST.pas:364)

# TCaseStmt (uAST.pas:375)
TCaseStmt.Selector  serialise
TCaseStmt.Branches  serialise
TCaseStmt.ElseStmt  serialise
TCaseStmt.IsStringCase  safe

# TFieldAssignment (uAST.pas:386)
TFieldAssignment.RecordName  serialise
TFieldAssignment.FieldName  serialise
TFieldAssignment.Expr  serialise
TFieldAssignment.ObjExpr  serialise
TFieldAssignment.FieldInfo  safe
TFieldAssignment.IsClassAccess  safe
TFieldAssignment.IsImplicitSelf  safe
TFieldAssignment.IsGlobal  safe
TFieldAssignment.IsVarParam  safe
TFieldAssignment.PropIndexExpr  serialise
TFieldAssignment.PropOwnerType  safe
TFieldAssignment.PropAccessorVSlot  safe
TFieldAssignment.IsElemWrite  safe

# TStaticSubscriptAssign (uAST.pas:414)
TStaticSubscriptAssign.ArrayName  serialise
TStaticSubscriptAssign.IndexExpr  serialise
TStaticSubscriptAssign.ValueExpr  serialise
TStaticSubscriptAssign.BaseExpr  serialise
TStaticSubscriptAssign.IsGlobal  safe
TStaticSubscriptAssign.IsVarParam  safe
TStaticSubscriptAssign.IsImplicitSelf  safe
TStaticSubscriptAssign.PropOwnerType  safe
TStaticSubscriptAssign.PropAccessorVSlot  safe

# TPointerWriteStmt (uAST.pas:444)
TPointerWriteStmt.PtrExpr  serialise
TPointerWriteStmt.ValExpr  serialise

# TProcCall (uAST.pas:452)
TProcCall.Name  serialise
TProcCall.Args  serialise
TProcCall.IsImplicitSelfMethod  safe
TProcCall.IsIndirectCall  safe
TProcCall.IndirectCallIsGlobal  safe

# TFuncCallExpr (uAST.pas:465)
TFuncCallExpr.Name  serialise
TFuncCallExpr.Args  serialise
TFuncCallExpr.IsImplicitSelfMethod  safe
TFuncCallExpr.IsIndirectCall  safe
TFuncCallExpr.IndirectCallIsGlobal  safe
TFuncCallExpr.IsBuiltinHasClassAttr  safe
TFuncCallExpr.HasClassAttrClass  safe
TFuncCallExpr.HasClassAttrAttr  safe

# TIndirectFuncCallExpr (uAST.pas:491)
TIndirectFuncCallExpr.CalleeExpr  serialise
TIndirectFuncCallExpr.Args  serialise

# TDerefExpr (uAST.pas:501)
TDerefExpr.Expr  serialise

# TAddrOfExpr (uAST.pas:508)
TAddrOfExpr.Expr  serialise
TAddrOfExpr.ResolvedFreeRoutine  safe

# TMethodCallStmt (uAST.pas:520)
TMethodCallStmt.ObjectName  serialise
TMethodCallStmt.Name  serialise
TMethodCallStmt.Args  serialise
TMethodCallStmt.ObjExpr  serialise
TMethodCallStmt.IsImplicitSelf  safe
TMethodCallStmt.IsGlobal  safe
TMethodCallStmt.IsVarParam  safe
TMethodCallStmt.IsBuiltinToString  safe
TMethodCallStmt.IsConstructorCall  safe
TMethodCallStmt.IsMetaclassDispatch  safe
TMethodCallStmt.IsProcFieldCall  safe

# TInheritedCallStmt (uAST.pas:554)
TInheritedCallStmt.Name  serialise
TInheritedCallStmt.Args  serialise

# TMethodCallExpr (uAST.pas:835)
TMethodCallExpr.ObjectName  serialise
TMethodCallExpr.Name  serialise
TMethodCallExpr.Args  serialise
TMethodCallExpr.ObjExpr  serialise
TMethodCallExpr.IsConstructorCall  safe
TMethodCallExpr.IsMetaclassDispatch  safe
TMethodCallExpr.IsGlobal  safe
TMethodCallExpr.IsVarParam  safe
TMethodCallExpr.IsBuiltinToString  safe
TMethodCallExpr.IsBuiltinInheritsFrom  safe
TMethodCallExpr.IsProcFieldCall  safe

# === Interface-container types (uUnitInterface.pas + TMethodParam) ===
#   serialise  must appear in the encoder AND decoder of uUnitInterfaceIO.pas

# TRoutineSig (uUnitInterface.pas:64)
TRoutineSig.Name  serialise
TRoutineSig.IsFunction  serialise
TRoutineSig.Params  serialise
TRoutineSig.ReturnType  serialise
TRoutineSig.IsInline  safe
TRoutineSig.IsPublished  safe
TRoutineSig.IsExternal  safe
TRoutineSig.ExternalName  safe
TRoutineSig.CallingConv  serialise
TRoutineSig.VTableSlot  serialise
TRoutineSig.ResolvedQbeName  serialise
TRoutineSig.IsVirtual  serialise
TRoutineSig.IsOverride  serialise

# TConstEntry (uUnitInterface.pas:97)
TConstEntry.Decl  serialise
TConstEntry.TypeRef  serialise

# TVarEntry (uUnitInterface.pas:105)
TVarEntry.Name  serialise
TVarEntry.TypeRef  serialise
TVarEntry.IsThreadVar  serialise

# TUnitInterface (uUnitInterface.pas:169)
TUnitInterface.Name  serialise
TUnitInterface.SourceFile  serialise
TUnitInterface.SourceHash  serialise
TUnitInterface.SourceModTime  serialise
TUnitInterface.CompilerId  serialise
TUnitInterface.UsedUnits  serialise
TUnitInterface.ImplUsedUnits  serialise
TUnitInterface.HasInitialization  serialise

# TMethodParam (uAST.pas:764)
TMethodParam.ParamName  serialise
TMethodParam.TypeName  serialise
TMethodParam.IsVarParam  serialise
TMethodParam.IsConstParam  serialise
TMethodParam.IsOutParam  serialise
TMethodParam.IsOpenArray  serialise
TMethodParam.DefaultValue  serialise
TMethodParam.HasDefault  serialise

