diff --git a/TypeCobol/Compiler/Diagnostics/Cobol2002Checker.cs b/TypeCobol/Compiler/Diagnostics/Cobol2002Checker.cs index 4606d906c..ab1a83f95 100644 --- a/TypeCobol/Compiler/Diagnostics/Cobol2002Checker.cs +++ b/TypeCobol/Compiler/Diagnostics/Cobol2002Checker.cs @@ -150,6 +150,8 @@ public static void OnNode(DataRedefines redefinesNode) DiagnosticUtils.AddError(redefinesNode, message, redefinesSymbolReference, code: MessageCode.SemanticTCErrorInParser); return; } + redefinedVariable.AddDataRedefinition(redefinesNode); + if (redefinedVariable.IsStronglyTyped || redefinedVariable.IsStrictlyTyped) { diff --git a/TypeCobol/Compiler/Diagnostics/TypeCobolLinker.cs b/TypeCobol/Compiler/Diagnostics/TypeCobolLinker.cs index 9fc7690ea..ec9116646 100644 --- a/TypeCobol/Compiler/Diagnostics/TypeCobolLinker.cs +++ b/TypeCobol/Compiler/Diagnostics/TypeCobolLinker.cs @@ -28,12 +28,6 @@ public override bool Visit(DataDescription dataEntry) return true; } - public override bool Visit(DataRedefines dataRedefinition) - { - RedefinitionReferencer(dataRedefinition); - return base.Visit(dataRedefinition); - } - public override bool Visit(Paragraph paragraph) { return false; @@ -152,14 +146,7 @@ private void TypeReferencer(DataDescription dataEntry, SymbolTable symbolTable) TypeReferencer(dataDescTypeChild as DataDescription, symbolTable); } } - - private void RedefinitionReferencer(DataRedefines dataRedefinition) - { - SymbolReference redefined = dataRedefinition.CodeElement.RedefinesDataName; - var result = dataRedefinition.SymbolTable.GetRedefinedVariable(dataRedefinition, redefined); - - result?.AddDataRedefinition(dataRedefinition); - } + } }