ETSI's Bug Tracker - Ext Pack: Advanced Parametrization (ES 202 784)
View Issue Details

ID | Project | Category | View Status | Date Submitted | Last Update
0007356 | Ext Pack: Advanced Parametrization (ES 202 784) | New Feature | public | 18-01-2016 11:01 | 16-12-2016 11:44

Reporter | Jacob Wieland - Spirent |
Assigned To | Gyorgy Rethy |
Priority | normal | Severity | minor | Reproducibility | have not tried
Status | closed | Resolution | fixed |
Platform |  | OS |  | OS Version |
Product Version | v1.6.1 (published 2017-04) |
Target Version | v1.6.1 (published 2017-04) | Fixed in Version | v1.6.1 (published 2017-04) |
TS version | 1.6.1
Clause Reference(s) | 5.4.1.5
Source (company - Author) | Testing Technologies - Jacob Wieland

Summary | 0007356: allow bounded formal type parameters also for non component types

Description

At the moment, a formal type parameter can only be given a supertype (or bound) that the actual parameter needs to conform to in case it is a component type.
However, it is often the case that a generic function can only work for a certain kind of type. Other languages solve this with a feature called bounded polymorphism where the supertype of the type parameter is given in the declaration.
The current approach forces the tool-providers to check for every application of a generic behavior/template whether or not the instantiation is statically correct for the given actual type parameters. Errors produced when failing that check are usually not very helpful, either, so it is very user-unfriendly by design.
In the case where bounds can be given for the formal type parameters, as well, the behavior/template can be checked on its own (using the bounds as approximation) and at the points of their instantiation, only the actual parameter needs to be checked against the formal type's bound.
Of course, there can still be situations where the first approach is necessary/valid (i.e. float vs. integer or charstring vs. universal charstring), but that is only the case if at least one of the formal type parameters does not have a supertype or if the type of an actual parameter can not be established (because it is an unbounded type parameter).

Steps To Reproduce | To fix this problem, restriction c) of change of section 5.4.1.5 shall be dropped.
Additional Information |
Tags | No tags attached.

Relationships

related to | 0005449 | closed | Gyorgy Rethy | Add mapping for parameterized ASN.1 types

Attached Files | CR7356v2.docx (157,360) 21-07-2016 10:16 http://oldforge.etsi.org/mantis/file_download.php?file_id=3429&type=bug

Issue History
Date Modified | Username | Field | Change
18-01-2016 11:01 | Jacob Wieland - Spirent | New Issue |
18-03-2016 10:36 | Jacob Wieland - Spirent | Relationship added | related to 0005449
18-03-2016 10:36 | Jacob Wieland - Spirent | Note Added: 0013896 |
18-07-2016 10:42 | Jens Grabowski | Assigned To | => Jens Grabowski
18-07-2016 10:42 | Jens Grabowski | Status | new => assigned
20-07-2016 09:07 | Jens Grabowski | Note Added: 0013996 |
20-07-2016 09:07 | Jens Grabowski | Assigned To | Jens Grabowski => KristÃ³f Szabados
20-07-2016 14:00 | Jens Grabowski | Note Added: 0014009 |
20-07-2016 14:00 | Jens Grabowski | Assigned To | KristÃ³f Szabados => Jacob Wieland - Spirent
21-07-2016 10:16 | Jacob Wieland - Spirent | File Added: CR7356v2.docx |
21-07-2016 10:16 | Jacob Wieland - Spirent | Note Added: 0014026 |
21-07-2016 10:16 | Jacob Wieland - Spirent | Assigned To | Jacob Wieland - Spirent => KristÃ³f Szabados
21-07-2016 10:16 | Jacob Wieland - Spirent | Status | assigned => confirmed
17-08-2016 11:16 | Jacob Wieland - Spirent | Product Version | Next version (to be defined) => v1.6.1 (published 2017-04)
17-08-2016 11:16 | Jacob Wieland - Spirent | Target Version | => Next version (to be defined)
07-11-2016 07:35 | KristÃ³f Szabados | Assigned To | KristÃ³f Szabados => Jacob Wieland - Spirent
07-11-2016 07:35 | KristÃ³f Szabados | Status | confirmed => assigned
07-11-2016 07:36 | KristÃ³f Szabados | Note Added: 0014221 |
07-11-2016 07:36 | KristÃ³f Szabados | Status | assigned => confirmed
10-11-2016 11:57 | Jacob Wieland - Spirent | Note Added: 0014223 |
10-11-2016 11:57 | Jacob Wieland - Spirent | Status | confirmed => resolved
10-11-2016 11:57 | Jacob Wieland - Spirent | Fixed in Version | => v1.6.1 (published 2017-04)
10-11-2016 11:57 | Jacob Wieland - Spirent | Resolution | open => fixed
10-11-2016 11:57 | Jacob Wieland - Spirent | Assigned To | Jacob Wieland - Spirent => Gyorgy Rethy
16-12-2016 11:39 | Gyorgy Rethy | Note Added: 0014443 |
16-12-2016 11:39 | Gyorgy Rethy | Status | resolved => closed
16-12-2016 11:39 | Gyorgy Rethy | Target Version | Next version (to be defined) => v1.6.1 (published 2017-04)
16-12-2016 11:44 | Gyorgy Rethy | Note Edited: 0014443 | bug_revision_view_page.php?bugnote_id=14443#r350

Notes

(0013896)
Jacob Wieland - Spirent
18-03-2016 10:36

if this restriction is lifted, the problem of proposal for CR 5449 would also be solved

(0013996)
Jens Grabowski
20-07-2016 09:07

I am fine with this proposal. Kristof please check if the resolution of this CR also solves 5449.

(0014009)
Jens Grabowski
20-07-2016 14:00

STF agreement: Jacob will propose a definition of type compatability for this package. Afterwards we check if the restriction can be relaxed to type compatability.

(0014026)
Jacob Wieland - Spirent
21-07-2016 10:16

please review

(0014221)
KristÃ³f Szabados
07-11-2016 07:36

The proposal looks fine by me. Solves a part of CR 5449

(0014223)
Jacob Wieland - Spirent
10-11-2016 11:57

please implement

(0014443)
Gyorgy Rethy
16-12-2016 11:39 (edited on: 16-12-2016 11:44)

Added to draft V1.5.2