summaryrefslogtreecommitdiff
path: root/packages/fcl-passrc
diff options
context:
space:
mode:
authormichael <michael@3ad0048d-3df7-0310-abae-a5850022a9f2>2020-05-26 16:40:18 +0000
committermichael <michael@3ad0048d-3df7-0310-abae-a5850022a9f2>2020-05-26 16:40:18 +0000
commit6a4e61826e6ee6004a7851cbdb533a991ca32f11 (patch)
tree7d5f920777193e608a83704756258ae111f86af2 /packages/fcl-passrc
parent63d10337346d53c266c6b2ab1db26ea7ea7a35ad (diff)
downloadfpc-6a4e61826e6ee6004a7851cbdb533a991ca32f11.tar.gz
* Descriptive error messages
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@45508 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/fcl-passrc')
-rw-r--r--packages/fcl-passrc/src/pastree.pp22
1 files changed, 11 insertions, 11 deletions
diff --git a/packages/fcl-passrc/src/pastree.pp b/packages/fcl-passrc/src/pastree.pp
index 2affee7861..b4a07ad89a 100644
--- a/packages/fcl-passrc/src/pastree.pp
+++ b/packages/fcl-passrc/src/pastree.pp
@@ -26,7 +26,7 @@ unit PasTree;
interface
-uses Classes;
+uses SysUtils, Classes;
resourcestring
// Parse tree node type names
@@ -91,6 +91,7 @@ resourcestring
SPasTreeDestructorImpl = 'destructor implementation';
type
+ EPasTree = Class(Exception);
// Visitor pattern.
TPassTreeVisitor = class;
@@ -1775,7 +1776,6 @@ function GetPTDumpStack: string;
implementation
-uses SysUtils;
procedure ReleaseAndNil(var El: TPasElement {$IFDEF CheckPasTreeRefCount}; const Id: string{$ENDIF});
begin
@@ -2793,7 +2793,7 @@ begin
writeln('ERROR: TPasElement.ChangeRefId ',Name,':',ClassName,' Old="'+OldId+'" New="'+NewId+'" Old not found');
writeln(RefIds.Text);
{AllowWriteln-}
- raise Exception.Create('');
+ raise EPasTree.Create('');
end;
RefIds.Delete(i);
RefIds.Add(NewId);
@@ -2839,7 +2839,7 @@ begin
end;
FreeAndNil(RefIds);
{$ENDIF}
- raise Exception.Create('');
+ raise EPasTree.Create(ClassName+'Destroy called wrong');
end;
{$IFDEF CheckPasTreeRefCount}
FreeAndNil(RefIds);
@@ -2923,7 +2923,7 @@ begin
{$if defined(VerbosePasResolver) or defined(VerbosePCUFiler)}
Writeln('TPasElement.Released : ',ClassName,' ',Name);
{$endif}
- raise Exception.Create('');
+ raise EPasTree.Create(ClassName+': Destroy called wrong');
end
else
begin
@@ -3799,7 +3799,7 @@ begin
Element.AddRef{$IFDEF CheckPasTreeRefCount}('TPasImplIfElse.ElseBranch'){$ENDIF};
end
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;
function TPasImplIfElse.CloseOnSemicolon: boolean;
@@ -3843,7 +3843,7 @@ begin
Body.AddRef{$IFDEF CheckPasTreeRefCount}('TPasImplForLoop.Body'){$ENDIF};
end
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;
procedure TPasImplForLoop.ForEachCall(const aMethodCall: TOnForEachPasElement;
@@ -5095,7 +5095,7 @@ var
l: Integer;
begin
if (InFilename<>nil) and (InFilename.Kind<>pekString) then
- raise Exception.Create('');
+ raise EPasTree.Create('Wrong In expression for '+aUnitName);
if aModule=nil then
aModule:=TPasUnresolvedUnitRef.Create(AUnitName, Self);
l:=length(UsesClause);
@@ -5188,7 +5188,7 @@ begin
Body.AddRef{$IFDEF CheckPasTreeRefCount}('TPasImplWhileDo.Body'){$ENDIF};
end
else
- raise Exception.Create('TPasImplWhileDo.AddElement body already set');
+ raise EPasTree.Create('TPasImplWhileDo.AddElement body already set');
end;
procedure TPasImplWhileDo.ForEachCall(const aMethodCall: TOnForEachPasElement;
@@ -5285,7 +5285,7 @@ begin
Body.AddRef{$IFDEF CheckPasTreeRefCount}('TPasImplCaseStatement.Body'){$ENDIF};
end
else
- raise Exception.Create('TPasImplCaseStatement.AddElement body already set');
+ raise EPasTree.Create('TPasImplCaseStatement.AddElement body already set');
end;
procedure TPasImplCaseStatement.AddExpression(const Expr: TPasExpr);
@@ -5334,7 +5334,7 @@ begin
Body.AddRef{$IFDEF CheckPasTreeRefCount}('TPasImplWithDo.Body'){$ENDIF};
end
else
- raise Exception.Create('TPasImplWithDo.AddElement body already set');
+ raise EPasTree.Create('TPasImplWithDo.AddElement body already set');
end;
procedure TPasImplWithDo.AddExpression(const Expression: TPasExpr);