"readonly" error (XBase++)
Opened this issue · 1 comments
DenGhostYY commented
Describe the bug
The compiler throws an error due to assignment of a "readonly" field in the context of a method of the same class.
To Reproduce
procedure main()
local o := Example():new(4)
? o:nNumber
// o:nNumber := 10
o:SetNumber(15)
? o:nNumber
return
class Example
exported:
var nNumber readonly
inline method init(nNumber)
::nNumber := nNumber
return
inline method SetNumber(nNumber)
::nNumber := nNumber
return self
endclass
Expected behavior (XBase++ exe)
Output
4
15
Actual behavior (X# compiler)
error XS0191: A readonly field cannot be assigned to (except in a constructor or init-only setter of the type in which the field is defined or a variable initializer)
Additional context
X# Compiler version 2.20.0.3 (public)
-dialect:xBase++
-codepage:866
-lb -enforceself -memvar -xpp1 -vo1 -vo3 -vo4 -vo5 -vo9 -vo10 -vo12 -vo13 -vo14 -vo15 -vo16 -vo17
-reference:XSharp.Core.dll
-reference:XSharp.RT.dll
-reference:XSharp.XPP.dll
nvkokkalis commented
Fix is similar to #1491; same problems apply.