Thread overview | ||||||||
---|---|---|---|---|---|---|---|---|
|
January 10, 2013 bugzilla issue 8434? Confusing error message? | ||||
---|---|---|---|---|
| ||||
...$ dmd -unittest bptree.d Error: cannot implicitly convert expression (this.dnLftLnk) of type BPNode[7LU] to bptree.BPNode Type BPNode is only declared once, although the error message refers to: if (ndx == -1) node = dnLftLnk; a place where it is an out parameter in a function declared: bool search (BPKey key, out BPNode node, out int ndx) { ... } bptree.d is the name of the file that contains both the declaration and the function. The compiler version is: ...$ dmd DMD64 D Compiler v2.060 The environment is linux (debian testing). |
January 10, 2013 Never mind. Confused left and right. | ||||
---|---|---|---|---|
| ||||
Posted in reply to Charles Hixson | dnLftLnk is an array.
(It's still a confusing error message. I assume that "[7LU]" indicates that it's an array, but if so, I don't know where it's documented.)
On 01/09/2013 06:36 PM, Charles Hixson wrote:
> ....$ dmd -unittest bptree.d
> Error: cannot implicitly convert expression (this.dnLftLnk) of type
> BPNode[7LU] to bptree.BPNode
>
> Type BPNode is only declared once, although the error message refers to:
> if (ndx == -1) node = dnLftLnk;
> a place where it is an out parameter in a function declared:
> bool search (BPKey key, out BPNode node, out int ndx)
> {
> ....
> }
>
> bptree.d is the name of the file that contains both the declaration and
> the function.
>
> The compiler version is:
> ....$ dmd
> DMD64 D Compiler v2.060
>
> The environment is linux (debian testing).
|
January 10, 2013 Re: Never mind. Confused left and right. | ||||
---|---|---|---|---|
| ||||
Posted in reply to Charles Hixson | On Thursday, 10 January 2013 at 21:53:27 UTC, Charles Hixson wrote:
> (It's still a confusing error message. I assume that "[7LU]" indicates that it's an array, but if so, I don't know where it's documented.)
It's an array. Fixed arrays have a numeric value inside the brackets, the LU is because it's a 64bit compiler/machine (size_t being long), otherwise it would say [7u]. I have similar problems sometimes, if the sizes match perfectly you won't have problems (and will copy), if they don't you can make a slice out of it and pass it.
I'm not sure if it's specifically documented, more like how it's seem to the compiler (for type checking).
|
January 11, 2013 Re: Never mind. Confused left and right. | ||||
---|---|---|---|---|
| ||||
Posted in reply to Era Scarecrow | On 01/10/2013 02:15 PM, Era Scarecrow wrote:
> On Thursday, 10 January 2013 at 21:53:27 UTC, Charles Hixson wrote:
>> (It's still a confusing error message. I assume that "[7LU]" indicates
>> that it's an array, but if so, I don't know where it's documented.)
>
> It's an array. Fixed arrays have a numeric value inside the brackets,
> the LU is because it's a 64bit compiler/machine (size_t being long),
> otherwise it would say [7u]. I have similar problems sometimes, if the
> sizes match perfectly you won't have problems (and will copy), if they
> don't you can make a slice out of it and pass it.
>
> I'm not sure if it's specifically documented, more like how it's seem to
> the compiler (for type checking).
Thanks. Good to have that guess confirmed.
|
Copyright © 1999-2021 by the D Language Foundation