private MemberReferenceHandle Import()

in src/Refasmer/Importer/SimpleImports.cs [76:104]


    private MemberReferenceHandle Import( MemberReferenceHandle srcHandle ) =>
        ImportEntity(srcHandle, _memberReferenceCache, _reader.GetMemberReference,
            src => _builder.AddMemberReference(Import(src.Parent), ImportValue(src.Name),
                ImportSignatureWithHeader(src.Signature)),
            _reader.ToString, IsNil);



    //---------

    private THandle ImportEntity<TEntity, THandle>( THandle srcHandle, IDictionary<THandle, THandle> cache,
        Func<THandle, TEntity> getEntity, Func<TEntity, THandle> import, Func<THandle, string> toString, Func<THandle, bool> isNil )
    {
        if (cache.TryGetValue(srcHandle, out var dstHandle))
            return dstHandle;

        dstHandle = import(getEntity(srcHandle));

        if (isNil(dstHandle))
        {
            Trace?.Invoke($"Not imported {toString(srcHandle)}");
            return dstHandle;
        }

        cache.Add(srcHandle, dstHandle);
        Trace?.Invoke($"Imported {toString(srcHandle)} -> {RowId(dstHandle!)}");

        return dstHandle;
    }