summaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
authormattias <mattias@3ad0048d-3df7-0310-abae-a5850022a9f2>2019-01-27 10:33:53 +0000
committermattias <mattias@3ad0048d-3df7-0310-abae-a5850022a9f2>2019-01-27 10:33:53 +0000
commite6f7c7d230c4b79f168e1363d2839134d2a15032 (patch)
tree57cde11ffd610b4fdd4c49f026c71eecc4a35cc4 /packages
parent639695ece56586fa5f4e50f6676c43c7b7e2833c (diff)
downloadfpc-e6f7c7d230c4b79f168e1363d2839134d2a15032.tar.gz
fcl-passrc: removed okgeneric, it bites generic interface
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@41083 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages')
-rw-r--r--packages/fcl-passrc/src/pastree.pp24
-rw-r--r--packages/fcl-passrc/src/pparser.pp12
-rw-r--r--packages/pastojs/src/pas2jsfiler.pp2
3 files changed, 15 insertions, 23 deletions
diff --git a/packages/fcl-passrc/src/pastree.pp b/packages/fcl-passrc/src/pastree.pp
index b32ed1236f..f132d2fc61 100644
--- a/packages/fcl-passrc/src/pastree.pp
+++ b/packages/fcl-passrc/src/pastree.pp
@@ -57,10 +57,10 @@ resourcestring
SPasTreeObjectType = 'object';
SPasTreeClassType = 'class';
SPasTreeInterfaceType = 'interface';
- SPasTreeGenericType = 'generic class';
SPasTreeSpecializedType = 'specialized class type';
- SPasClassHelperType = 'Class helper type';
- SPasRecordHelperType = 'Record helper type';
+ SPasClassHelperType = 'class helper type';
+ SPasRecordHelperType = 'record helper type';
+ SPasTypeHelperType = 'type helper type';
SPasTreeArgument = 'argument';
SPasTreeProcedureType = 'procedure type';
SPasTreeResultElement = 'function result';
@@ -737,12 +737,12 @@ type
TPasObjKind = (
okObject, okClass, okInterface,
- okGeneric, // MG: what is okGeneric?
+ // okGeneric removed in FPC 3.3.1 check instead GenericTemplateTypes
// okSpecialize removed in FPC 3.1.1
okClassHelper,okRecordHelper,okTypeHelper,
okDispInterface);
const
- okWithFields = [okObject, okClass, okGeneric];
+ okWithFields = [okObject, okClass];
okAllHelpers = [okClassHelper,okRecordHelper,okTypeHelper];
okWithClassFields = okWithFields+okAllHelpers;
@@ -778,7 +778,6 @@ type
ExternalNameSpace : String;
ExternalName : String;
InterfaceType: TPasClassInterfaceType;
- Procedure SetGenericTemplates(AList : TFPList); override;
Function FindMember(MemberClass : TPTreeElement; Const MemberName : String) : TPasElement;
Function FindMemberInAncestors(MemberClass : TPTreeElement; Const MemberName : String) : TPasElement;
Function InterfaceGUID : string;
@@ -1630,8 +1629,9 @@ const
'strict private', 'strict protected');
ObjKindNames: array[TPasObjKind] of string = (
- 'object', 'class', 'interface', 'class',
- 'class helper','record helper','type helper','dispinterface');
+ 'object', 'class', 'interface',
+ 'class helper','record helper','type helper',
+ 'dispinterface');
InterfaceTypeNames: array[TPasClassInterfaceType] of string = (
'COM',
@@ -3037,9 +3037,9 @@ begin
okObject: Result := SPasTreeObjectType;
okClass: Result := SPasTreeClassType;
okInterface: Result := SPasTreeInterfaceType;
- okGeneric : Result := SPasTreeGenericType;
okClassHelper : Result:=SPasClassHelperType;
okRecordHelper : Result:=SPasRecordHelperType;
+ okTypeHelper : Result:=SPasTypeHelperType;
else
Result:='ObjKind('+IntToStr(ord(ObjKind))+')';
end;
@@ -3059,12 +3059,6 @@ begin
ForEachChildCall(aMethodCall,Arg,GUIDExpr,false);
end;
-procedure TPasClassType.SetGenericTemplates(AList: TFPList);
-begin
- ObjKind:=okGeneric;
- inherited SetGenericTemplates(AList);
-end;
-
function TPasClassType.FindMember(MemberClass: TPTreeElement; const MemberName: String): TPasElement;
Var
diff --git a/packages/fcl-passrc/src/pparser.pp b/packages/fcl-passrc/src/pparser.pp
index 20a1b07876..9398428bda 100644
--- a/packages/fcl-passrc/src/pparser.pp
+++ b/packages/fcl-passrc/src/pparser.pp
@@ -6719,7 +6719,7 @@ begin
tkType:
begin
case AType.ObjKind of
- okClass,okObject,okGeneric,
+ okClass,okObject,
okClassHelper,okRecordHelper,okTypeHelper: ;
else
ParseExc(nParserXNotAllowedInY,SParserXNotAllowedInY,['TYPE',ObjKindNames[AType.ObjKind]]);
@@ -6732,7 +6732,7 @@ begin
ParseExc(nParserExpectToken2Error,SParserExpectToken2Error,
['Procedure','Var']);
case AType.ObjKind of
- okClass,okObject,okGeneric,
+ okClass,okObject,
okClassHelper,okRecordHelper,okTypeHelper: ;
else
ParseExc(nParserXNotAllowedInY,SParserXNotAllowedInY,['CONST',ObjKindNames[AType.ObjKind]]);
@@ -6789,7 +6789,7 @@ begin
if not haveClass then
SaveComments;
case AType.ObjKind of
- okObject,okClass,okGeneric: ;
+ okObject,okClass: ;
okClassHelper,okTypeHelper,okRecordHelper:
begin
if (CurToken=tkdestructor) and not haveClass then
@@ -6836,7 +6836,7 @@ begin
tkclass:
begin
case AType.ObjKind of
- okClass,okObject,okGeneric,
+ okClass,okObject,
okClassHelper,okRecordHelper,okTypeHelper: ;
else
ParseExc(nParserXNotAllowedInY,SParserXNotAllowedInY,['CLASS',ObjKindNames[AType.ObjKind]]);
@@ -6876,7 +6876,7 @@ var
Expr: TPasExpr;
begin
- if (CurToken=tkIdentifier) and (AType.ObjKind in [okClass,okGeneric]) then
+ if (CurToken=tkIdentifier) and (AType.ObjKind=okClass) then
begin
s := LowerCase(CurTokenString);
if (s = 'sealed') or (s = 'abstract') then
@@ -6896,7 +6896,7 @@ begin
CheckToken(tkend);
NextToken;
AType.AncestorType := ParseTypeReference(AType,false,Expr);
- if AType.ObjKind in [okClass,okGeneric] then
+ if AType.ObjKind=okClass then
while CurToken=tkComma do
begin
NextToken;
diff --git a/packages/pastojs/src/pas2jsfiler.pp b/packages/pastojs/src/pas2jsfiler.pp
index 39be849691..512e7471cf 100644
--- a/packages/pastojs/src/pas2jsfiler.pp
+++ b/packages/pastojs/src/pas2jsfiler.pp
@@ -349,7 +349,6 @@ const
'Object',
'Class',
'Interface',
- 'Generic',
'ClassHelper',
'RecordHelper',
'TypeHelper',
@@ -5694,7 +5693,6 @@ begin
'Object': CreateClassType(okObject,Name);
'Class': CreateClassType(okClass,Name);
'Interface': CreateClassType(okInterface,Name);
- 'Generic': CreateClassType(okGeneric,Name);
'ClassHelper': CreateClassType(okClassHelper,Name);
'RecordHelper': CreateClassType(okRecordHelper,Name);
'TypeHelper': CreateClassType(okTypeHelper,Name);