From c67f8f2a28a66b5a427129ea0a45b1c381c638be Mon Sep 17 00:00:00 2001 From: marco Date: Tue, 31 May 2016 07:23:52 +0000 Subject: [PATCH] --- Merging r32845 into '.': A tests/webtbs/tw29321.pp U compiler/pexpr.pas --- Recording mergeinfo for merge of r32845 into '.': U . # revisions: 32845 git-svn-id: branches/fixes_3_0@33862 - --- .gitattributes | 1 + compiler/pexpr.pas | 13 +++++++------ tests/webtbs/tw29321.pp | 24 ++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 6 deletions(-) create mode 100644 tests/webtbs/tw29321.pp diff --git a/.gitattributes b/.gitattributes index 5d8c6ee142..c9f99fa448 100644 --- a/.gitattributes +++ b/.gitattributes @@ -14575,6 +14575,7 @@ tests/webtbs/tw2920.pp svneol=native#text/plain tests/webtbs/tw2923.pp svneol=native#text/plain tests/webtbs/tw2926.pp svneol=native#text/plain tests/webtbs/tw2927.pp svneol=native#text/plain +tests/webtbs/tw29321.pp svneol=native#text/pascal tests/webtbs/tw29372.pp svneol=native#text/pascal tests/webtbs/tw2942a.pp svneol=native#text/plain tests/webtbs/tw2942b.pp svneol=native#text/plain diff --git a/compiler/pexpr.pas b/compiler/pexpr.pas index b40dd0b5c6..7df173b6f9 100644 --- a/compiler/pexpr.pas +++ b/compiler/pexpr.pas @@ -2172,12 +2172,13 @@ implementation end; end else - begin - Message(parser_e_invalid_qualifier); - p1.destroy; - p1:=cerrornode.create; - consume(_ID); - end; + if (token<>_ID) or not try_type_helper(p1,nil) then + begin + Message(parser_e_invalid_qualifier); + p1.destroy; + p1:=cerrornode.create; + consume(_ID); + end; end; variantdef: begin diff --git a/tests/webtbs/tw29321.pp b/tests/webtbs/tw29321.pp new file mode 100644 index 0000000000..2af9b76596 --- /dev/null +++ b/tests/webtbs/tw29321.pp @@ -0,0 +1,24 @@ +{ %NORUN } + +program tw29321; + +{$mode objfpc} +{$modeswitch typehelpers} + +type + TVector = array[0..2] of Single; + + TVectorHelper = type helper for TVector + public + procedure Add; + end; + +procedure TVectorHelper.Add; +begin +end; + +var + v: TVector; +begin + v.Add; +end.