Last update July 12, 2009

Language Devel / DIPs /
DIP3



DIP3: Remove inheritance protection

DIP:3
Title:Remove inheritance protection
Version:1
Status:Draft
Created:2009-07-11
Last Modified:2009-07-11
Language:D2
Breaks:Probably little
Related Issue: Bugzilla:177

Abstract

Non-public inheritance in a single inheritance language that has a single root object hierarchy makes little sense.

Rationale

Hiding 'Object' level attributes from a class leads to strange behavior.

Description

The compiler is behaving as spec'ed, but the value and correctness of this part of the spec is in question.

The suggested change, effectively drop one line from the grammar.

    SuperClass?:
	Identifier
	Protection Identifier // delete

An alternative would be for Object to always be forced to public visibility even if there's a break in the public chain up to it.

Copyright

This document has been placed in the Public Domain.

FrontPage | News | TestPage | MessageBoard | Search | Contributors | Folders | Index | Help | Preferences | Edit

Edit text of this page (date of last change: July 12, 2009 5:30 (diff))