public ParameterizedGenericMethodBinding(MethodBinding originalMethod,TypeBinding[] typeArguments,LookupEnvironment environment){
  this.environment=environment;
  this.modifiers=originalMethod.modifiers;
  this.selector=originalMethod.selector;
  this.declaringClass=originalMethod.declaringClass;
  this.typeVariables=Binding.NO_TYPE_VARIABLES;
  this.typeArguments=typeArguments;
  this.isRaw=false;
  this.tagBits=originalMethod.tagBits;
  this.originalMethod=originalMethod;
  this.parameters=Scope.substitute(this,originalMethod.parameters);
  this.returnType=Scope.substitute(this,originalMethod.returnType);
  this.thrownExceptions=Scope.substitute(this,originalMethod.thrownExceptions);
  if (this.thrownExceptions == null)   this.thrownExceptions=Binding.NO_EXCEPTIONS;
  checkMissingType: {
    if ((this.tagBits & TagBits.HasMissingType) != 0)     break checkMissingType;
    if ((this.returnType.tagBits & TagBits.HasMissingType) != 0) {
      this.tagBits|=TagBits.HasMissingType;
      break checkMissingType;
    }
    for (int i=0, max=this.parameters.length; i < max; i++) {
      if ((this.parameters[i].tagBits & TagBits.HasMissingType) != 0) {
        this.tagBits|=TagBits.HasMissingType;
        break checkMissingType;
      }
    }
    for (int i=0, max=this.thrownExceptions.length; i < max; i++) {
      if ((this.thrownExceptions[i].tagBits & TagBits.HasMissingType) != 0) {
        this.tagBits|=TagBits.HasMissingType;
        break checkMissingType;
      }
    }
  }
  this.wasInferred=true;
}

public ParameterizedGenericMethodBinding ( MethodBinding originalMethod , TypeBinding [ ] typeArguments , LookupEnvironment environment ) { this . environment = environment ; this . modifiers = originalMethod . modifiers ; this . selector = originalMethod . selector ; this . declaringClass = originalMethod . declaringClass ; this . typeVariables = Binding . NO_TYPE_VARIABLES ; this . typeArguments = typeArguments ; this . isRaw = false ; this . tagBits = originalMethod . tagBits ; this . originalMethod = originalMethod ; this . parameters = Scope . substitute ( this , originalMethod . parameters ) ; this . returnType = Scope . substitute ( this , originalMethod . returnType ) ; this . thrownExceptions = Scope . substitute ( this , originalMethod . thrownExceptions ) ; if ( this . thrownExceptions == null ) this . thrownExceptions = Binding . NO_EXCEPTIONS ; checkMissingType : { if ( ( this . tagBits & TagBits . HasMissingType ) != 0 ) break checkMissingType ; if ( ( this . returnType . tagBits & TagBits . HasMissingType ) != 0 ) { this . tagBits |= TagBits . HasMissingType ; break checkMissingType ; } for ( int i = 0 , max = this . parameters . length ; i < max ; i ++ ) { if ( ( this . parameters [ i ] . tagBits & TagBits . HasMissingType ) != 0 ) { this . tagBits |= TagBits . HasMissingType ; break checkMissingType ; } } for ( int i = 0 , max = this . thrownExceptions . length ; i < max ; i ++ ) { if ( ( this . thrownExceptions [ i ] . tagBits & TagBits . HasMissingType ) != 0 ) { this . tagBits |= TagBits . HasMissingType ; break checkMissingType ; } } } this . wasInferred = true ; }
create method of parameterized type , substituting original parameters with type arguments .
