This bug tracks the implementation of the EAPI 3 feature mentioned in the summary.
From PMS: In a 3-style use dependency, the flag name may immediately be followed by a default specified by either (+) or (-). The former indicates that, when applying the use dependency to a package that does not have the flag in question in IUSE_REFERENCEABLE, the package manager shall behave as if the flag were present and enabled; the latter, present and disabled. Unless a 3-style default is specified, it is an error for a use dependency to be applied to an ebuild which does not have the flag in question in IUSE_REFERENCEABLE. Note: By extension of the above, a default that could reference an ebuild using an EAPI not supporting profile IUSE injections cannot rely upon any particular behaviour for flags that would not have to be part of IUSE. It is an error for an ebuild to use a conditional use dependency when that ebuild does not have the flag in IUSE_EFFECTIVE.
Created attachment 224219 [details] use defaults patch by Sebastian Luther (few) I've been sitting on the patch for awhile and haven't reviewed it yet, I'm posting it here in case anyone else wants to have a look. Hopefully I'll get around to reviewing and committing it soon.
Created attachment 224745 [details, diff] portage-r15840-use-dep-defaults.patch I forgot a case in portage.dbapi._iter_match_use that is triggered by portageq.
This is in git now: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=5e39119d80433d9333fac70d12cf7c6b6ca61afe