From c0b4514b7c5eeb60cbe91f24de29aad203db2ec9 Mon Sep 17 00:00:00 2001 From: Jonas Maebe Date: Sat, 20 Aug 2011 07:56:29 +0000 Subject: [PATCH] * also search for fully qualified nested types in Java classes/interfaces * resolve anonymous external classes when handling nested type expressions git-svn-id: branches/jvmbackend@18400 - --- compiler/pdecvar.pas | 3 ++- compiler/ptype.pas | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/compiler/pdecvar.pas b/compiler/pdecvar.pas index cdf000642e..05d0c14906 100644 --- a/compiler/pdecvar.pas +++ b/compiler/pdecvar.pas @@ -1553,7 +1553,8 @@ implementation This just speedup the search a bit. } recstlist.count:=0; if not is_class_or_object(tdef(recst.defowner)) and - not is_record(tdef(recst.defowner)) then + not is_record(tdef(recst.defowner)) and + not is_java_class_or_interface(tdef(recst.defowner)) then begin recstlist.add(recst); symtablestack.pop(recst); diff --git a/compiler/ptype.pas b/compiler/ptype.pas index 4c7de21c2d..41d596396c 100644 --- a/compiler/ptype.pas +++ b/compiler/ptype.pas @@ -435,8 +435,10 @@ implementation consume(_POINT); consume(_ID); end - else if is_class_or_object(def) or is_record(def) then + else if is_class_or_object(def) or is_record(def) or is_java_class_or_interface(def) then begin + if (def.typ=objectdef) then + def:=find_real_class_definition(tobjectdef(def),false); consume(_POINT); if (structstackindex>=0) and (tabstractrecorddef(currentstructstack[structstackindex]).objname^=pattern) then