mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-06 04:29:42 +02:00
Merged revision(s) 44082 from trunk:
* fix for Mantis #36631: it's an error if a POINT after an array is not followed by an identifier + added tests ........ git-svn-id: branches/fixes_3_2@44143 -
This commit is contained in:
parent
e4165fa85f
commit
a1f78b242a
2
.gitattributes
vendored
2
.gitattributes
vendored
@ -15854,6 +15854,8 @@ tests/webtbf/tw3631.pp svneol=native#text/plain
|
||||
tests/webtbf/tw3643.pp svneol=native#text/plain
|
||||
tests/webtbf/tw3644.pp svneol=native#text/plain
|
||||
tests/webtbf/tw3662.pp svneol=native#text/plain
|
||||
tests/webtbf/tw36631a.pp svneol=native#text/pascal
|
||||
tests/webtbf/tw36631b.pp svneol=native#text/pascal
|
||||
tests/webtbf/tw3680.pp svneol=native#text/plain
|
||||
tests/webtbf/tw3716.pp svneol=native#text/plain
|
||||
tests/webtbf/tw3738.pp svneol=native#text/plain
|
||||
|
@ -2445,22 +2445,32 @@ implementation
|
||||
begin
|
||||
if is_dynamic_array(p1.resultdef) then
|
||||
begin
|
||||
if (token=_ID) and not try_type_helper(p1,nil) then
|
||||
if token=_ID then
|
||||
begin
|
||||
if pattern='CREATE' then
|
||||
if not try_type_helper(p1,nil) then
|
||||
begin
|
||||
consume(_ID);
|
||||
p2:=parse_array_constructor(tarraydef(p1.resultdef));
|
||||
p1.destroy;
|
||||
p1:=p2;
|
||||
end
|
||||
else
|
||||
begin
|
||||
Message2(scan_f_syn_expected,'CREATE',pattern);
|
||||
p1.destroy;
|
||||
p1:=cerrornode.create;
|
||||
consume(_ID);
|
||||
if pattern='CREATE' then
|
||||
begin
|
||||
consume(_ID);
|
||||
p2:=parse_array_constructor(tarraydef(p1.resultdef));
|
||||
p1.destroy;
|
||||
p1:=p2;
|
||||
end
|
||||
else
|
||||
begin
|
||||
Message2(scan_f_syn_expected,'CREATE',pattern);
|
||||
p1.destroy;
|
||||
p1:=cerrornode.create;
|
||||
consume(_ID);
|
||||
end;
|
||||
end;
|
||||
end
|
||||
else
|
||||
begin
|
||||
Message(parser_e_invalid_qualifier);
|
||||
p1.destroy;
|
||||
p1:=cerrornode.create;
|
||||
consume(_ID);
|
||||
end;
|
||||
end
|
||||
else
|
||||
|
23
tests/webtbf/tw36631a.pp
Normal file
23
tests/webtbf/tw36631a.pp
Normal file
@ -0,0 +1,23 @@
|
||||
{ %FAIL }
|
||||
|
||||
program tw36631a;
|
||||
|
||||
{$APPTYPE CONSOLE}
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
uses
|
||||
Classes,
|
||||
SysUtils;
|
||||
|
||||
var
|
||||
LongStr: String;
|
||||
SingleStr: String;
|
||||
|
||||
begin
|
||||
LongStr := 'Some example, test text. Another one, or something like that.';
|
||||
|
||||
SingleStr := LongStr.Split([',', '.']).[1];
|
||||
writeln(SingleStr); // ' test text'
|
||||
|
||||
writeln('done');
|
||||
end.
|
23
tests/webtbf/tw36631b.pp
Normal file
23
tests/webtbf/tw36631b.pp
Normal file
@ -0,0 +1,23 @@
|
||||
{ %FAIL }
|
||||
|
||||
program tw36631b;
|
||||
|
||||
{$APPTYPE CONSOLE}
|
||||
{$mode delphi}
|
||||
|
||||
uses
|
||||
Classes,
|
||||
SysUtils;
|
||||
|
||||
var
|
||||
LongStr: String;
|
||||
SingleStr: String;
|
||||
|
||||
begin
|
||||
LongStr := 'Some example, test text. Another one, or something like that.';
|
||||
|
||||
SingleStr := LongStr.Split([',', '.']).[1];
|
||||
writeln(SingleStr); // ' test text'
|
||||
|
||||
writeln('done');
|
||||
end.
|
Loading…
Reference in New Issue
Block a user