digitalmars.D.bugs - [Issue 5299] New: Protected inheritance is semantically undefined.
- d-bugmail puremagic.com (22/22) Dec 01 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5299
- d-bugmail puremagic.com (16/16) Dec 01 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5299
- d-bugmail puremagic.com (19/28) Jul 24 2011 http://d.puremagic.com/issues/show_bug.cgi?id=5299
- d-bugmail puremagic.com (10/10) Jul 24 2011 http://d.puremagic.com/issues/show_bug.cgi?id=5299
- d-bugmail puremagic.com (11/11) Sep 15 2011 http://d.puremagic.com/issues/show_bug.cgi?id=5299
- d-bugmail puremagic.com (13/13) Jan 20 2012 http://d.puremagic.com/issues/show_bug.cgi?id=5299
http://d.puremagic.com/issues/show_bug.cgi?id=5299
Summary: Protected inheritance is semantically undefined.
Product: D
Version: unspecified
Platform: Other
OS/Version: All
Status: NEW
Keywords: spec
Severity: normal
Priority: P2
Component: websites
AssignedTo: nobody puremagic.com
ReportedBy: blood.of.life gmail.com
05:38:20 PST ---
http://www.digitalmars.com/d/2.0/class.html
Inheritance is defined by the grammar to be allowed to take this form:
Protection Identifier
However, this is not mentioned anywhere, and the semantics are entirely
undefined.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Dec 01 2010
http://d.puremagic.com/issues/show_bug.cgi?id=5299
Jonathan M Davis <jmdavisProg gmx.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jmdavisProg gmx.com
PST ---
Well, that's exceptionally weird. It compiles too. D doesn't support any kind
of inheritance but public. It seems like either it's a hold-over which was
never removed (assuming that D supported private or protected inheritance in
the past), or it was intended to make porting C++ code easier. But it seems to
me that allowing and then ignoring (as the compiler presumably does) protection
identifiers when inheriting classes is not good behavior. The fact that the
compiler allows it though means that it's more than just a spec issue.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Dec 01 2010
http://d.puremagic.com/issues/show_bug.cgi?id=5299
Stewart Gordon <smjg iname.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |smjg iname.com
Well, that's exceptionally weird. It compiles too. D doesn't
support any kind of inheritance but public. It seems like either
it's a hold-over which was never removed (assuming that D supported
private or protected inheritance in the past),
According to the description and first comment on issue 177, private/protected
inheritance once worked. But it doesn't work now (1.069, 2.054). But it never
made sense to have the feature in D.
or it was intended to make porting C++ code easier.
D was never intended to be source-compatible with C++, or even C.
Consequently, such a tiny concession makes no sense at all, and even less sense
considering the fundamental differences between C++ classes and D classes.
But it seems to me that allowing and then ignoring (as the compiler
presumably does) protection identifiers when inheriting classes is
not good behavior. The fact that the compiler allows it though
means that it's more than just a spec issue.
Issue 177 is "Remove inheritance protection". Essentially that has been done,
but by ignoring attempts to use it rather than making it illegal. So that
issue has been reduced to this one.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jul 24 2011
http://d.puremagic.com/issues/show_bug.cgi?id=5299
Stewart Gordon <smjg iname.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |benoit tionex.de
*** Issue 177 has been marked as a duplicate of this issue. ***
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jul 24 2011
http://d.puremagic.com/issues/show_bug.cgi?id=5299
Trass3r <mrmocool gmx.de> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |mrmocool gmx.de
grammar part fixed in
https://github.com/D-Programming-Language/d-programming-language.org/commit/55b8905dd1f251fd54a8306bc1cce353bfa0d09e
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Sep 15 2011
http://d.puremagic.com/issues/show_bug.cgi?id=5299
Walter Bright <bugzilla digitalmars.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
CC| |bugzilla digitalmars.com
Resolution| |FIXED
12:07:41 PST ---
Deprecated it:
https://github.com/D-Programming-Language/dmd/commit/3ab6ab40e457e8f32539be38b14ea3839f38d409
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jan 20 2012









d-bugmail puremagic.com 