[wg11] EXPRESS (DERIVEd) attribute redeclaration question
Phil Spiby
phil.spiby at eurostep.com
Fri Jun 1 01:43:30 EDT 2012
I believe Rule and Restriction (e) under section 9.2.3.4 applies:
e) If an attribute of a supertype is redeclared in two non-mutually exclusive subtypes, an
instance which contains both subtypes shall have a single value for that attribute which is
valid for both redeclarations.
Phil
-----Original Message-----
From: wg11-bounces at steptools.com [mailto:wg11-bounces at steptools.com] On Behalf Of Thomas Thurman
Sent: 30 May 2012 18:39
To: wg11
Subject: [wg11] EXPRESS (DERIVEd) attribute redeclaration question
Dear WG11 experts,
During testing of a new version of the EDMS EXPRESS compiler/shtolo, The following error report was generated by the compiler examining the concatenated arm of the test case.
For reference, this is logged as an issue against the module EXPRESS on module 1732, ISO 10303 instance of bugzilla bug #4409.
The complete file is attached to the bug.
The problem appears to be that a redeclaration in a "lower" subtype redeclares an attribute from the supertype when there is an existing redeclaration in an "intermediate" subtype.
My question to the WG11 experts is this:
Is the EXPRESS declaration in line 2446 (cited as an error by the EDMS compiler) valid EXPRESS?
(I seem to recall that Lothar mentioned that this had been discussed in a meeting and it was agreed that it was valid.) If this is valid EXPRESS, the ERROR will need to be converted to a WARNING.
If this is valid EXPRESS, what "happens" to the attribute Part_item_shape.described_element during (e.g., interface class generation, runtime) If this is valid EXPRESS, doesn't there need to be some NOTE in part 11 mentioning it?
Very best regards,
Tom Thurman
======Here are the details.=========
The redeclaration
Part_usage_view.described_element references SELECT type shapeable_item. However, the redeclared attribute domain is already reduced to Part_view_definition in the supertype Part_item_shape declaration.
Therefore the re-redeclaration is an attempted generalization which is not allowed in attribute redeclaration.
ERROR : Line 204: C3126:Conflicting implicit attribute redeclaration. in entity: ALTERED_PACKAGE
Redeclaring attribute: PART_USAGE_VIEW.DESCRIBED_ELEMENT in line: 24446
Redeclared attribute: PART_ITEM_SHAPE.DESCRIBED_ELEMENT in line: 11439
Redeclaration from PART_VIEW_DEFINITION to SHAPEABLE_ITEM
Additional info:
Error 8105.0 SELECT tree contains an entity which is neither same nor subtype
At line :22998: Entity:PART_VIEW_DEFINITION
At line :31102: Type:SHAPEABLE_ITEM
Error 8104.0 Entity is not same or subtype
At line :30931: Select type:SF_SHAPEABLE_ITEM
At line :4244: Select member:CHARACTERIZABLE_OBJECT
ENTITY Part_item_shape
SUBTYPE OF (Item_shape);
11439-- SELF\Item_shape.described_element : Part_view_definition; END_ENTITY;
ENTITY Part_usage_view
SUBTYPE OF (Part_view_definition, Part_item_shape);
DERIVE
24446-- SELF\Item_shape.described_element : shapeable_item := SELF;
END_ENTITY;
22998--ENTITY Part_view_definition
SUBTYPE OF (Product_view_definition);
SELF\Product_view_definition.defined_version : Part_version;
SELF\Product_view_definition.initial_context: Part_view_definition_context;
SELF\Product_view_definition.additional_contexts: SET [0:?] OF Part_view_definition_context; END_ENTITY;
31102--TYPE shapeable_item = EXTENSIBLE GENERIC_ENTITY SELECT (Product_occurrence_definition_relationship,
Product_view_definition,
View_definition_relationship);
END_TYPE;
---
SCHEMA Shape_feature_arm;
USE FROM Characterizable_object_arm; -- ISO/TS 10303-1765 USE FROM Contextual_shape_positioning_arm; -- ISO/TS 10303-1027 REFERENCE FROM Support_resource_arm(bag_to_set); -- ISO/TS 10303-1765 USE FROM Property_assignment_arm; -- ISO/TS 10303-1030
30931--TYPE sf_shapeable_item = SELECT BASED_ON shapeable_item WITH (Characterizable_object); END_TYPE;
4244--ENTITY Characterizable_object;
name : label;
description : OPTIONAL text;
END_ENTITY;
===========================
proposed solution:
///problem is in line 24446-->
the following should be the declaration:
SELF\Part_item_shape.described_element : Part_usage_view := SELF; ==================end bug entry=============================
_______________________________________________
wg11 mailing list
wg11 at steptools.com
http://lists.steptools.com/mailman/listinfo/wg11
More information about the wg11
mailing list