Skip to content

Commit

Permalink
WI TypeCobolTeam#1302 Move redefines resolution to Cobol2002Checker
Browse files Browse the repository at this point in the history
TypeCobolLinker doesn't resolve redefines.
As Cobol2002Checker already do it, it's move here.
  • Loading branch information
osmedile committed Apr 3, 2019
1 parent ba63ece commit 9a38793
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 14 deletions.
2 changes: 2 additions & 0 deletions TypeCobol/Compiler/Diagnostics/Cobol2002Checker.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
Expand Down
15 changes: 1 addition & 14 deletions TypeCobol/Compiler/Diagnostics/TypeCobolLinker.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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);
}


}
}

0 comments on commit 9a38793

Please sign in to comment.