[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