summaryrefslogtreecommitdiff
path: root/test/files/run/t9200
Commit message (Collapse)AuthorAgeFilesLines
* SI-9200 Fix Java generic signatures for refined typesJason Zaugg2015-03-052-0/+18
The erasure of a refined type `T1 with T2 ... Tn` is the erasure of the intersection dominator of the elements. In addition to erased method signatures, the compiler also emits Java generic signatures, included information about generic types, up to the point that it is possible to express in the language of Java 5 generics. Java generic signatures must be consistent with erasued signatures, that is, the Java compiler must erase that generic signature to the same erased signature. If this does not hold, linkage errors will occur. The compiler implements erasure in `ErasureMap` and java generic signatures in `Erasure#javaSig`. Regrettably, these don't share any implementation; e.g `javaSig` only takes the first parent of a refinement type, rather than using `intersectionDominator`. This commit fixes that discrepency.