return isAssignableFrom( superArgs, subArgs ); return isAssignableFrom( new Type[] { superComponent }, new Type[] { subComponent } );
if ( subType instanceof TypeVariable<?> && isAssignableFrom( expand( subType ), expand( superType ) ) ) if ( !isAssignableFrom( expand( superType ), expand( subType ) ) )