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;
  • JTransformer 3.0: Added as noParameterBoundT
  • JTransformer 4.0: Renamed to preserve_noParameterBoundT
  • JTransformer 4.1: Renamed to omit_parameterBoundT


#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