xsharp.eu • error XS0208: Cannot take the address ... a pointer for using @ for ref variable
Page 1 of 1

error XS0208: Cannot take the address ... a pointer for using @ for ref variable

Posted: Wed Nov 09, 2016 8:15 am
by ArneOrtlinghaus
I have many compiler errors when calling functions with ref variables with the @.
Is there a possibility that you can changes this?

function FGetDir (cFullFileName)
//p Return of the drive/directory for a full filename
local cDrive, cDir, cFile, cExt as string
FSplitPath(cFullFileName, @cDrive, @cDir, @cFile, @cExt)

// The following would resolve it, but there is no possibility to use the same syntax in VO:
// FSplitPath(cFullFileName, ref cDrive, ref cDir, ref cFile, ref cExt)
return cDrive+cDir

function FSplitPath(cPath as string, ;
cDrive ref string, ;
cDir ref string, ;
cFile ref string, ;
cExt ref string) as void
...

Thank you
Arne Ortlinghaus

error XS0208: Cannot take the address ... a pointer for using @ for ref variable

Posted: Wed Nov 09, 2016 8:42 am
by Chris
Hi Arne,

We implemented this feature (with the use of the/vo7 compiler option) just a few days ago! As I said in another post, there are fixes and improvements literally every day...

Do you need this "now"? If yes, it is not difficult for us to upload our latest set of compiler dlls in the subscribers' area so you can download it.

Chris

error XS0208: Cannot take the address ... a pointer for using @ for ref variable

Posted: Wed Nov 09, 2016 8:49 am
by ArneOrtlinghaus
Hi Chris,

very nice, that you have implemented it.
I don't need it immediately, I can wait for the next version. I am currently making conversion tests and this is not the only compiler error I get currently.

I was astonished that the X# Compiler identified some risky parts I didn't realize before. Marking a statement like
x := x
is a nice help for identifying wrong or useless code.

error XS0208: Cannot take the address ... a pointer for using @ for ref variable

Posted: Wed Nov 09, 2016 8:55 am
by robert
Arne,
ArneOrtlinghaus wrote:Hi Chris,

Marking a statement like
x := x
is a nice help for identifying wrong or useless code.
We have introduced the NOP keyword, which could be usefull if you want to include an empty ELSE or OTHERWISE branch in your code for documentation purposes. The NOP keyword generates no code but is seen as a valid statement. (Like an extra semi colon in C#)

Robert

error XS0208: Cannot take the address ... a pointer for using @ for ref variable

Posted: Wed Nov 09, 2016 9:04 am
by ArneOrtlinghaus
Robert,
this is good. When starting with VO we defined a function Nop() which does the same purpose, but a keyword NOP is surely better.