mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-28 16:40:28 +02:00
* Descriptive error messages
git-svn-id: trunk@45508 -
This commit is contained in:
parent
3e344a12e2
commit
4a6080d602
@ -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);
|
||||||
|
Loading…
Reference in New Issue
Block a user