summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2019-06-20 20:57:37 +0000
committerjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2019-06-20 20:57:37 +0000
commit3baab8bff0116ee3df001833e723cbbda9c540df (patch)
treed5a46b9041676f7e25355f14df6db86b47cd31bb
parentdd321341472d48dec57e23cbae7fc77450a58e61 (diff)
parent617d7429dc0750b9664d5e38270189c78d2c2a69 (diff)
downloadfpc-debug_eh.tar.gz
* synchronised with trunk till r42258debug_eh
git-svn-id: https://svn.freepascal.org/svn/fpc/branches/debug_eh@42259 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r--packages/pastojs/src/pas2jsfiler.pp41
-rw-r--r--packages/pastojs/tests/tcfiler.pas3
2 files changed, 9 insertions, 35 deletions
diff --git a/packages/pastojs/src/pas2jsfiler.pp b/packages/pastojs/src/pas2jsfiler.pp
index f16276e4b3..acf05a3d73 100644
--- a/packages/pastojs/src/pas2jsfiler.pp
+++ b/packages/pastojs/src/pas2jsfiler.pp
@@ -747,7 +747,6 @@ type
procedure WriteAliasType(Obj: TJSONObject; El: TPasAliasType; aContext: TPCUWriterContext); virtual;
procedure WritePointerType(Obj: TJSONObject; El: TPasPointerType; aContext: TPCUWriterContext); virtual;
procedure WriteSpecializeType(Obj: TJSONObject; El: TPasSpecializeType; aContext: TPCUWriterContext); virtual;
- procedure WriteInlineTypeExpr(Obj: TJSONObject; Expr: TInlineTypeExpr; aContext: TPCUWriterContext); virtual;
procedure WriteInlineSpecializeExpr(Obj: TJSONObject; Expr: TInlineSpecializeExpr; aContext: TPCUWriterContext); virtual;
procedure WriteRangeType(Obj: TJSONObject; El: TPasRangeType; aContext: TPCUWriterContext); virtual;
procedure WriteArrayType(Obj: TJSONObject; El: TPasArrayType; aContext: TPCUWriterContext); virtual;
@@ -842,7 +841,6 @@ type
procedure Set_Variable_VarType(RefEl: TPasElement; Data: TObject);
procedure Set_AliasType_DestType(RefEl: TPasElement; Data: TObject);
procedure Set_PointerType_DestType(RefEl: TPasElement; Data: TObject);
- procedure Set_InlineTypeExpr_DestType(RefEl: TPasElement; Data: TObject);
procedure Set_ArrayType_ElType(RefEl: TPasElement; Data: TObject);
procedure Set_FileType_ElType(RefEl: TPasElement; Data: TObject);
procedure Set_SetType_EnumType(RefEl: TPasElement; Data: TObject);
@@ -951,7 +949,6 @@ type
procedure ReadAliasType(Obj: TJSONObject; El: TPasAliasType; aContext: TPCUReaderContext); virtual;
procedure ReadPointerType(Obj: TJSONObject; El: TPasPointerType; aContext: TPCUReaderContext); virtual;
procedure ReadSpecializeType(Obj: TJSONObject; El: TPasSpecializeType; aContext: TPCUReaderContext); virtual;
- procedure ReadInlineTypeExpr(Obj: TJSONObject; Expr: TInlineTypeExpr; aContext: TPCUReaderContext); virtual;
procedure ReadInlineSpecializeExpr(Obj: TJSONObject; Expr: TInlineSpecializeExpr; aContext: TPCUReaderContext); virtual;
procedure ReadRangeType(Obj: TJSONObject; El: TPasRangeType; aContext: TPCUReaderContext); virtual;
procedure ReadArrayType(Obj: TJSONObject; El: TPasArrayType; aContext: TPCUReaderContext); virtual;
@@ -3299,17 +3296,12 @@ begin
WriteElementList(Obj,El,'Params',El.Params,aContext);
end;
-procedure TPCUWriter.WriteInlineTypeExpr(Obj: TJSONObject; Expr: TInlineTypeExpr;
- aContext: TPCUWriterContext);
-begin
- WritePasExpr(Obj,Expr,pekSpecialize,eopNone,aContext);
- WriteElType(Obj,Expr,'Dest',Expr.DestType,aContext);
-end;
-
procedure TPCUWriter.WriteInlineSpecializeExpr(Obj: TJSONObject;
Expr: TInlineSpecializeExpr; aContext: TPCUWriterContext);
begin
- WriteInlineTypeExpr(Obj,Expr,aContext);
+ WritePasExpr(Obj,Expr,pekSpecialize,eopNone,aContext);
+ WriteExpr(Obj,Expr,'Name',Expr.NameExpr,aContext);
+ WriteElementList(Obj,Expr,'Params',Expr.Params,aContext);
end;
procedure TPCUWriter.WriteRangeType(Obj: TJSONObject; El: TPasRangeType;
@@ -4186,21 +4178,6 @@ begin
RaiseMsg(20180211121757,El,GetObjName(RefEl));
end;
-procedure TPCUReader.Set_InlineTypeExpr_DestType(RefEl: TPasElement;
- Data: TObject);
-var
- El: TInlineTypeExpr absolute Data;
-begin
- if RefEl is TPasType then
- begin
- El.DestType:=TPasType(RefEl);
- if RefEl.Parent<>El then
- RefEl.AddRef{$IFDEF CheckPasTreeRefCount}('TInlineTypeExpr.DestType'){$ENDIF};
- end
- else
- RaiseMsg(20180211121750,El,GetObjName(RefEl));
-end;
-
procedure TPCUReader.Set_ArrayType_ElType(RefEl: TPasElement; Data: TObject);
var
El: TPasArrayType absolute Data;
@@ -6632,18 +6609,14 @@ begin
aContext);
end;
-procedure TPCUReader.ReadInlineTypeExpr(Obj: TJSONObject;
- Expr: TInlineTypeExpr; aContext: TPCUReaderContext);
-begin
- ReadPasExpr(Obj,Expr,Expr.Kind,aContext);
- ReadElType(Obj,'Dest',Expr,@Set_InlineTypeExpr_DestType,aContext);
-end;
-
procedure TPCUReader.ReadInlineSpecializeExpr(Obj: TJSONObject;
Expr: TInlineSpecializeExpr; aContext: TPCUReaderContext);
begin
Expr.Kind:=pekSpecialize;
- ReadInlineTypeExpr(Obj,Expr,aContext);
+ Expr.NameExpr:=ReadExpr(Obj,Expr,'Name',aContext);
+ ReadElementList(Obj,Expr,'Params',Expr.Params,
+ {$IFDEF CheckPasTreeRefCount}'TPasSpecializeType.Params'{$ELSE}true{$ENDIF},
+ aContext);
end;
procedure TPCUReader.ReadRangeType(Obj: TJSONObject; El: TPasRangeType;
diff --git a/packages/pastojs/tests/tcfiler.pas b/packages/pastojs/tests/tcfiler.pas
index 464b2608b2..491a2f62c9 100644
--- a/packages/pastojs/tests/tcfiler.pas
+++ b/packages/pastojs/tests/tcfiler.pas
@@ -1358,7 +1358,8 @@ end;
procedure TCustomTestPrecompile.CheckRestoredInlineSpecializedExpr(
const Path: string; Orig, Rest: TInlineSpecializeExpr);
begin
- CheckRestoredElOrRef(Path+'.DestType',Orig,Orig.DestType,Rest,Rest.DestType);
+ CheckRestoredElement(Path+'.NameExpr',Orig.NameExpr,Rest.NameExpr);
+ CheckRestoredElementList(Path+'.Params',Orig.Params,Rest.Params);
end;
procedure TCustomTestPrecompile.CheckRestoredRangeType(const Path: string;