From fe1492223f07fd67fa61308d8653bc43ea843695 Mon Sep 17 00:00:00 2001 From: Paul Duffin Date: Tue, 14 Jan 2020 14:06:09 +0000 Subject: [PATCH] Exclude sdkMemberVersionedDepTag from visibility enforcement The implicit dependency from an unversioned sdk member to the snapshot versions should be excluded from visibility enforcement as it provides no benefit and would require snapshot members to be visible to their original source modules which would complicate visibility handling. Also, corrects a spelling mistake in sdkMemberVersionedDepTag. Bug: 142940300 Test: m nothing Change-Id: Ib7ea6a3d3904d042dca0ea12f6b9196d40de970b --- sdk/sdk.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/sdk/sdk.go b/sdk/sdk.go index 44e5cbbe4..3b0752ff7 100644 --- a/sdk/sdk.go +++ b/sdk/sdk.go @@ -285,12 +285,15 @@ type dependencyTag struct { // For dependencies from an in-development version of an SDK member to frozen versions of the same member // e.g. libfoo -> libfoo.mysdk.11 and libfoo.mysdk.12 -type sdkMemberVesionedDepTag struct { +type sdkMemberVersionedDepTag struct { dependencyTag member string version string } +// Mark this tag so dependencies that use it are excluded from visibility enforcement. +func (t sdkMemberVersionedDepTag) ExcludeFromVisibilityEnforcement() {} + // Step 1: create dependencies from an SDK module to its members. func memberMutator(mctx android.BottomUpMutatorContext) { if s, ok := mctx.Module().(*sdk); ok { @@ -337,7 +340,7 @@ func memberInterVersionMutator(mctx android.BottomUpMutatorContext) { if m, ok := mctx.Module().(android.SdkAware); ok && m.IsInAnySdk() { if !m.ContainingSdk().Unversioned() { memberName := m.MemberName() - tag := sdkMemberVesionedDepTag{member: memberName, version: m.ContainingSdk().Version} + tag := sdkMemberVersionedDepTag{member: memberName, version: m.ContainingSdk().Version} mctx.AddReverseDependency(mctx.Module(), tag, memberName) } }