[Issue 9292] hasNestedArgs wrong result for nested template literal
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Thu Jan 10 12:44:14 PST 2013
http://d.puremagic.com/issues/show_bug.cgi?id=9292
Iain Buclaw <ibuclaw at ubuntu.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |ibuclaw at ubuntu.com
--- Comment #1 from Iain Buclaw <ibuclaw at ubuntu.com> 2013-01-10 12:44:09 PST ---
(In reply to comment #0)
> Created an attachment (id=1178) [details]
> test case
>
> When compiling testcase.d, hasNestedArgs returns these results:
>
> topNIndex!() nested=0
> Test!(indirectLess) nested=1
> BinaryHeap!(Test()) nested=0
>
> AFAIK BinaryHeap!(Test()) should also be marked as nested, as it needs
> Test!(indirectLess) which is nested?
>
> I'm not sure if this causes a real problem in dmd, but we use
> hasNestedArgs/isnested in gdc to tell the backend if the instantiated template
> is accessible from other modules.
>
> Therefore this test case currently ICEs gdc (also depends on gcc version. Some
> are more picky)
>
> BTW: Would it be OK to mark this as "blocker", as it blocks gdc from compiling
> that test case?
IIRC, the way DMD does it, all functions are public, even nested ones. I think
I've had this argument before with Alex over whether I should follow suit or
carry on marking nested functions as non-public. Call by alias is meant to be
a direct call that skips any checks for where the function actually is. So far
have been special casing these instances as I find them.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list