* Descriptive error messages

git-svn-id: trunk@45508 -
This commit is contained in:
michael 2020-05-26 16:40:18 +00:00
parent 3e344a12e2
commit 4a6080d602

View File

@ -26,7 +26,7 @@ unit PasTree;
interface interface
uses Classes; uses SysUtils, Classes;
resourcestring resourcestring
// Parse tree node type names // Parse tree node type names
@ -91,6 +91,7 @@ resourcestring
SPasTreeDestructorImpl = 'destructor implementation'; SPasTreeDestructorImpl = 'destructor implementation';
type type
EPasTree = Class(Exception);
// Visitor pattern. // Visitor pattern.
TPassTreeVisitor = class; TPassTreeVisitor = class;
@ -1775,7 +1776,6 @@ function GetPTDumpStack: string;
implementation implementation
uses SysUtils;
procedure ReleaseAndNil(var El: TPasElement {$IFDEF CheckPasTreeRefCount}; const Id: string{$ENDIF}); procedure ReleaseAndNil(var El: TPasElement {$IFDEF CheckPasTreeRefCount}; const Id: string{$ENDIF});
begin begin
@ -2793,7 +2793,7 @@ begin
writeln('ERROR: TPasElement.ChangeRefId ',Name,':',ClassName,' Old="'+OldId+'" New="'+NewId+'" Old not found'); writeln('ERROR: TPasElement.ChangeRefId ',Name,':',ClassName,' Old="'+OldId+'" New="'+NewId+'" Old not found');
writeln(RefIds.Text); writeln(RefIds.Text);
{AllowWriteln-} {AllowWriteln-}
raise Exception.Create(''); raise EPasTree.Create('');
end; end;
RefIds.Delete(i); RefIds.Delete(i);
RefIds.Add(NewId); RefIds.Add(NewId);
@ -2839,7 +2839,7 @@ begin
end; end;
FreeAndNil(RefIds); FreeAndNil(RefIds);
{$ENDIF} {$ENDIF}
raise Exception.Create(''); raise EPasTree.Create(ClassName+'Destroy called wrong');
end; end;
{$IFDEF CheckPasTreeRefCount} {$IFDEF CheckPasTreeRefCount}
FreeAndNil(RefIds); FreeAndNil(RefIds);
@ -2923,7 +2923,7 @@ begin
{$if defined(VerbosePasResolver) or defined(VerbosePCUFiler)} {$if defined(VerbosePasResolver) or defined(VerbosePCUFiler)}
Writeln('TPasElement.Released : ',ClassName,' ',Name); Writeln('TPasElement.Released : ',ClassName,' ',Name);
{$endif} {$endif}
raise Exception.Create(''); raise EPasTree.Create(ClassName+': Destroy called wrong');
end end
else else
begin begin
@ -3799,7 +3799,7 @@ begin
Element.AddRef{$IFDEF CheckPasTreeRefCount}('TPasImplIfElse.ElseBranch'){$ENDIF}; Element.AddRef{$IFDEF CheckPasTreeRefCount}('TPasImplIfElse.ElseBranch'){$ENDIF};
end end
else else
raise Exception.Create('TPasImplIfElse.AddElement if and else already set - please report this bug'); raise EPasTree.Create('TPasImplIfElse.AddElement if and else already set - please report this bug');
end; end;
function TPasImplIfElse.CloseOnSemicolon: boolean; function TPasImplIfElse.CloseOnSemicolon: boolean;
@ -3843,7 +3843,7 @@ begin
Body.AddRef{$IFDEF CheckPasTreeRefCount}('TPasImplForLoop.Body'){$ENDIF}; Body.AddRef{$IFDEF CheckPasTreeRefCount}('TPasImplForLoop.Body'){$ENDIF};
end end
else else
raise Exception.Create('TPasImplForLoop.AddElement body already set - please report this bug'); raise EPasTree.Create('TPasImplForLoop.AddElement body already set - please report this bug');
end; end;
procedure TPasImplForLoop.ForEachCall(const aMethodCall: TOnForEachPasElement; procedure TPasImplForLoop.ForEachCall(const aMethodCall: TOnForEachPasElement;
@ -5095,7 +5095,7 @@ var
l: Integer; l: Integer;
begin begin
if (InFilename<>nil) and (InFilename.Kind<>pekString) then if (InFilename<>nil) and (InFilename.Kind<>pekString) then
raise Exception.Create(''); raise EPasTree.Create('Wrong In expression for '+aUnitName);
if aModule=nil then if aModule=nil then
aModule:=TPasUnresolvedUnitRef.Create(AUnitName, Self); aModule:=TPasUnresolvedUnitRef.Create(AUnitName, Self);
l:=length(UsesClause); l:=length(UsesClause);
@ -5188,7 +5188,7 @@ begin
Body.AddRef{$IFDEF CheckPasTreeRefCount}('TPasImplWhileDo.Body'){$ENDIF}; Body.AddRef{$IFDEF CheckPasTreeRefCount}('TPasImplWhileDo.Body'){$ENDIF};
end end
else else
raise Exception.Create('TPasImplWhileDo.AddElement body already set'); raise EPasTree.Create('TPasImplWhileDo.AddElement body already set');
end; end;
procedure TPasImplWhileDo.ForEachCall(const aMethodCall: TOnForEachPasElement; procedure TPasImplWhileDo.ForEachCall(const aMethodCall: TOnForEachPasElement;
@ -5285,7 +5285,7 @@ begin
Body.AddRef{$IFDEF CheckPasTreeRefCount}('TPasImplCaseStatement.Body'){$ENDIF}; Body.AddRef{$IFDEF CheckPasTreeRefCount}('TPasImplCaseStatement.Body'){$ENDIF};
end end
else else
raise Exception.Create('TPasImplCaseStatement.AddElement body already set'); raise EPasTree.Create('TPasImplCaseStatement.AddElement body already set');
end; end;
procedure TPasImplCaseStatement.AddExpression(const Expr: TPasExpr); procedure TPasImplCaseStatement.AddExpression(const Expr: TPasExpr);
@ -5334,7 +5334,7 @@ begin
Body.AddRef{$IFDEF CheckPasTreeRefCount}('TPasImplWithDo.Body'){$ENDIF}; Body.AddRef{$IFDEF CheckPasTreeRefCount}('TPasImplWithDo.Body'){$ENDIF};
end end
else else
raise Exception.Create('TPasImplWithDo.AddElement body already set'); raise EPasTree.Create('TPasImplWithDo.AddElement body already set');
end; end;
procedure TPasImplWithDo.AddExpression(const Expression: TPasExpr); procedure TPasImplWithDo.AddExpression(const Expression: TPasExpr);