diff --git a/CodeCompletion/CodeFormatter.cs b/CodeCompletion/CodeFormatter.cs index bb05671be..7e7ceb561 100644 --- a/CodeCompletion/CodeFormatter.cs +++ b/CodeCompletion/CodeFormatter.cs @@ -3471,6 +3471,7 @@ namespace CodeFormatters { foreach (ident id in _property_ident.ln) visit_node(id); + return; } WriteAmpersandIfNeed(_property_ident); sb.Append(prepare_ident(_property_ident.name)); diff --git a/TestSuite/explicitinterface11.pas b/TestSuite/explicitinterface11.pas new file mode 100644 index 000000000..95efef25c --- /dev/null +++ b/TestSuite/explicitinterface11.pas @@ -0,0 +1,20 @@ +type + I1 = interface + property X: integer read write; + end; + + T1 = record(I1) + x1: integer; + x2: integer; + property X: integer read x1 write x1; + property I1.X: integer read x2 write x2; + end; + +begin + var r: T1; + r.X := 1; + assert(r.X = 1); + var r1: I1 := r; + r1.X := 3; + assert(r1.X = 3); +end. \ No newline at end of file diff --git a/TestSuite/formatter_tests/input/property7.pas b/TestSuite/formatter_tests/input/property7.pas new file mode 100644 index 000000000..eb9017b52 --- /dev/null +++ b/TestSuite/formatter_tests/input/property7.pas @@ -0,0 +1,17 @@ +type + I1 = interface + property X: integer read; + end; + + T1 = record(I1) + property X: integer read 1; + property I1.X: integer read 2; + end; + +begin + var r: T1; + assert(r.X = 1); + var r1: I1 := r; + writeln(r1.X); + assert(r1.X = 2); +end. \ No newline at end of file diff --git a/TestSuite/formatter_tests/should/property7.pas b/TestSuite/formatter_tests/should/property7.pas new file mode 100644 index 000000000..eb9017b52 --- /dev/null +++ b/TestSuite/formatter_tests/should/property7.pas @@ -0,0 +1,17 @@ +type + I1 = interface + property X: integer read; + end; + + T1 = record(I1) + property X: integer read 1; + property I1.X: integer read 2; + end; + +begin + var r: T1; + assert(r.X = 1); + var r1: I1 := r; + writeln(r1.X); + assert(r1.X = 2); +end. \ No newline at end of file