pastojs: error on nested type, bug #31983

git-svn-id: trunk@36460 -
This commit is contained in:
Mattias Gaertner 2017-06-08 21:27:11 +00:00
parent fbdd04b8ab
commit bff64521b3
2 changed files with 25 additions and 0 deletions

View File

@ -877,6 +877,7 @@ type
procedure RenameSubOverloads(Declarations: TFPList);
procedure PushOverloadScope(Scope: TPasIdentifierScope);
procedure PopOverloadScope;
procedure AddType(El: TPasType); override;
procedure ResolveImplAsm(El: TPasImplAsmStatement); override;
procedure ResolveNameExpr(El: TPasExpr; const aName: string;
Access: TResolvedRefAccess); override;
@ -1814,6 +1815,13 @@ begin
FOverloadScopes.Delete(FOverloadScopes.Count-1);
end;
procedure TPas2JSResolver.AddType(El: TPasType);
begin
inherited AddType(El);
if TopScope is TPasClassScope then
RaiseNotYetImplemented(20170608232534,El,'nested types');
end;
procedure TPas2JSResolver.ResolveImplAsm(El: TPasImplAsmStatement);
{type
TAsmToken = (

View File

@ -386,6 +386,9 @@ type
Procedure TestClassOf_TypeCast;
Procedure TestClassOf_ImplicitFunctionCall;
// nested class
Procedure TestNestedClass_Fail;
// external class
Procedure TestExternalClass_Var;
//ToDo Procedure TestExternalClass_Const;
@ -8906,6 +8909,20 @@ begin
'']));
end;
procedure TTestModule.TestNestedClass_Fail;
begin
StartProgram(false);
Add([
'type',
' TObject = class',
' type TNested = longint;',
' end;',
'begin']);
SetExpectedPasResolverError('not yet implemented: TNested:TPasAliasType [20170608232534] nested types',
nNotYetImplemented);
ConvertProgram;
end;
procedure TTestModule.TestExternalClass_Var;
begin
StartProgram(false);