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

This forum is meant for questions and discussions about the X# language and tools
Post Reply
User avatar
ArneOrtlinghaus
Posts: 384
Joined: Tue Nov 10, 2015 7:48 am
Location: Italy

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

Post 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
User avatar
Chris
Posts: 4562
Joined: Thu Oct 08, 2015 7:48 am
Location: Greece

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

Post 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
Chris Pyrgas

XSharp Development Team test
chris(at)xsharp.eu
User avatar
ArneOrtlinghaus
Posts: 384
Joined: Tue Nov 10, 2015 7:48 am
Location: Italy

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

Post 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.
User avatar
robert
Posts: 4225
Joined: Fri Aug 21, 2015 10:57 am
Location: Netherlands

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

Post 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
XSharp Development Team
The Netherlands
robert@xsharp.eu
User avatar
ArneOrtlinghaus
Posts: 384
Joined: Tue Nov 10, 2015 7:48 am
Location: Italy

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

Post 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.
Post Reply