SDA SE Wiki

Software Engineering for Smart Data Analytics & Smart Data Analytics for Software Engineering

User Tools

Site Tools



omit_parameterBoundT(#id, #element)

This fact is used for preserving the original appearance of the source code after transformations. It declares, that no explicit bound for a type parameter or a wildcard in a parameterized type is given (therefore extends Object is used as an implicit bound).

class A<T> {
...
List<?> l;

instead of

class A<T extends Object> {
...
List<? extends Object> l;
History
  • JTransformer 3.0: Added as noParameterBoundT
  • JTransformer 4.0: Renamed to preserve_noParameterBoundT
  • JTransformer 4.1: Renamed to omit_parameterBoundT

Arguments

#id: id
ID of the typeParamT element or the parent of the parameterizedTypeT.

#element: wildcardT, null
In case of a parameterizedTypeT this is the ID of the corresponding wildcardT, otherwise (in case of a typeParamT) it's null

Sample Java Source

class A<T> {
...
}

Its PEF Representation

classT(Class, _, 'A', [TypeParam], _),
typeParamT(TypeParam, Class, 'T', [RefToObject]),
omit_parameterBoundT(TypeParam, null).

AST Specification

ast_relation_type_spec( omit_parameterBoundT,[
   ast_arg(id,      mult(1,1,no ), id,    [id]),
   ast_arg(element, mult(1,1,no ), id,    [wildcardT, nullType])
]).
research/jtransformer/api/java/pefs/4.2/omit_parameterboundt.txt · Last modified: 2018/05/09 01:59 (external edit)

SEWiki, © 2019