private void assignSuperDfs( IDynamicFunctionSymbol dfsDelegate, IGosuClass owner )
  {
    IDynamicFunctionSymbol rawSuperDfs = dfsDelegate.getSuperDfs();
    if( rawSuperDfs instanceof DynamicFunctionSymbol )
    {
      while( rawSuperDfs.getBackingDfs() instanceof DynamicFunctionSymbol && rawSuperDfs.getBackingDfs() != rawSuperDfs )
      {
        rawSuperDfs = rawSuperDfs.getBackingDfs();
      }
      IType ownersType = rawSuperDfs.getDeclaringTypeInfo().getOwnersType();
      if( !IGosuClass.ProxyUtil.isProxy( ownersType ) )
      {
        IType superOwner = TypeLord.findParameterizedType( owner, ownersType );
        if( superOwner == null )
        {
          superOwner = ownersType;
        }
        setSuperDfs( ((DynamicFunctionSymbol)rawSuperDfs).getParameterizedVersion( (IGosuClass)superOwner ) );
      }
    }
  }
private void assignSuperDfs ( IDynamicFunctionSymbol dfsDelegate , IGosuClass owner ) { IDynamicFunctionSymbol rawSuperDfs = dfsDelegate . getSuperDfs ( ) ; if ( rawSuperDfs instanceof DynamicFunctionSymbol ) { while ( rawSuperDfs . getBackingDfs ( ) instanceof DynamicFunctionSymbol && rawSuperDfs . getBackingDfs ( ) != rawSuperDfs ) { rawSuperDfs = rawSuperDfs . getBackingDfs ( ) ; } IType ownersType = rawSuperDfs . getDeclaringTypeInfo ( ) . getOwnersType ( ) ; if ( ! IGosuClass . ProxyUtil . isProxy ( ownersType ) ) { IType superOwner = TypeLord . findParameterizedType ( owner , ownersType ) ; if ( superOwner == null ) { superOwner = ownersType ; } setSuperDfs ( ( ( DynamicFunctionSymbol ) rawSuperDfs ) . getParameterizedVersion ( ( IGosuClass ) superOwner ) ) ; } } }
Assign the super dfs in terms of the deriving class's type parameters