Helper object to generate generic java signatures, as defined in the Java Virtual Machine Specification, §4.3.4
Extracts the type of the thrown exception from an AnnotationInfo.
Supports both “old-style”
as well as “new-style”
The intersection dominator (SLS 3.7) of a list of types is computed as follows.
- If the list contains one or more occurrences of scala.Array with type parameters El1, El2, ... then the dominator is scala.Array with type parameter of intersectionDominator(List(El1, El2, ...)). <--- @PP: not yet in spec.
- Otherwise, the list is reduced to a subsequence containing only types which are not subtypes of other listed types (the span.)
- If the span is empty, the dominator is Object.
- If the span contains a class Tc which is not a trait and which is not Object, the dominator is Tc. <--- @PP: "which is not Object" not in spec.
- Otherwise, the dominator is the first element of the span.
Generate the signature for
sym0, with type
info, as defined in
the Java Virtual Machine Specification, §4.3.4