Opened 4 years ago
Closed 4 years ago
#204 closed defect (fixed)
Conversion cost ignores type parameters
Reported by: | f37yu | Owned by: | |
---|---|---|---|
Priority: | major | Component: | cfa-cc |
Version: | 1.0 | Keywords: | |
Cc: |
Description
The conversionCost function incorrectly produces a cost of zero between parametric types.
with declaration
forall (dtype DT) struct A; A(int) aint;
the invalid cast
(A(char)) aint
is accepted by the compiler.
There is an algorithmic error in conversionCost: struct types are already handled in typesCompatible call, which correctly considers type parameters. However, incompatible structs are passed into ConversionCost? pass again which only consider names and not parameters.
Note: See
TracTickets for help on using
tickets.
Used the suggested fix (simply removing the offending code) and added a test that shows the error.
Commit: 1d179399a54c3ddcecf129adeec6303b1492ddac