About collision sweep , is unreal bug?

struct FHitResult ImpactPoint has this words: @note: In the case of initial overlap (bStartPenetrating=true), ImpactPoint will be the same as Location because there is no meaningful single impact point to report.

when two object overlap , can find the right ImpactPoint .

i try to follow the code , i find this :
const bool bInitialOverlap = PHit.hadInitialOverlap();
if (bInitialOverlap && Geom != nullptr)
ConvertOverlappedShapeToImpactHit(World, PHit, StartLoc, EndLoc, OutResult, *Geom, QueryTM, QueryFilter, bReturnPhysMat);
return EConvertQueryResult::Valid;
in the function “ConvertOverlappedShapeToImpactHit” :

OutResult.Location = P2UVector(QueryTM.p);
OutResult.ImpactPoint = OutResult.Location

the ImpactPoint pos is not the hit positon , when i use “OutResult.ImpactPoint = P2UVector(PHit.position)” relpace to , the ImpactPoint is right.

how can i no change unreal engine code ,use plugin to implement to get the right ImpactPoint .