Add sdk:"keep" tag support

Fields tagged with `sdk:"keep"` will keep the value even if it would
normally be cleared because it was common across a number of structs.
This will allow a module type to specify the same value across all
structs populated directly from variants and have it be copied into all
common property structs without clearing it from the variant specific
structs.

Bug: 248258460
Test: m nothing
Change-Id: I147d946b11fd8766a7d875d9206e8f5034f585d6
This commit is contained in:
Paul Duffin
2022-09-22 16:21:54 +01:00
parent 02e25c85eb
commit bfdca96828
3 changed files with 26 additions and 5 deletions

View File

@@ -221,6 +221,7 @@ type testPropertiesStruct struct {
name string
private string
Public_Ignore string `sdk:"ignore"`
Public_Keep string `sdk:"keep"`
S_Common string
S_Different string `android:"arch_variant"`
A_Common []string
@@ -247,6 +248,7 @@ func TestCommonValueOptimization(t *testing.T) {
name: "struct-0",
private: "common",
Public_Ignore: "common",
Public_Keep: "keep",
S_Common: "common",
S_Different: "upper",
A_Common: []string{"first", "second"},
@@ -262,6 +264,7 @@ func TestCommonValueOptimization(t *testing.T) {
name: "struct-1",
private: "common",
Public_Ignore: "common",
Public_Keep: "keep",
S_Common: "common",
S_Different: "lower",
A_Common: []string{"first", "second"},
@@ -285,6 +288,7 @@ func TestCommonValueOptimization(t *testing.T) {
name: "common",
private: "",
Public_Ignore: "",
Public_Keep: "keep",
S_Common: "common",
S_Different: "",
A_Common: []string{"first", "second"},
@@ -303,6 +307,7 @@ func TestCommonValueOptimization(t *testing.T) {
name: "struct-0",
private: "common",
Public_Ignore: "common",
Public_Keep: "keep",
S_Common: "",
S_Different: "upper",
A_Common: nil,
@@ -321,6 +326,7 @@ func TestCommonValueOptimization(t *testing.T) {
name: "struct-1",
private: "common",
Public_Ignore: "common",
Public_Keep: "keep",
S_Common: "",
S_Different: "lower",
A_Common: nil,