diff --git a/android/defaults.go b/android/defaults.go index 84f0a3dbd..3ec3ff42f 100644 --- a/android/defaults.go +++ b/android/defaults.go @@ -29,16 +29,16 @@ type defaultsProperties struct { Defaults []string } -type DefaultableModule struct { +type DefaultableModuleBase struct { defaultsProperties defaultsProperties defaultableProperties []interface{} } -func (d *DefaultableModule) defaults() *defaultsProperties { +func (d *DefaultableModuleBase) defaults() *defaultsProperties { return &d.defaultsProperties } -func (d *DefaultableModule) setProperties(props []interface{}) { +func (d *DefaultableModuleBase) setProperties(props []interface{}) { d.defaultableProperties = props } @@ -48,17 +48,21 @@ type Defaultable interface { applyDefaults(TopDownMutatorContext, []Defaults) } -var _ Defaultable = (*DefaultableModule)(nil) - -func InitDefaultableModule(module Module, d Defaultable) { - - d.setProperties(module.GetProperties()) - - module.AddProperties(d.defaults()) +type DefaultableModule interface { + Module + Defaultable } -type DefaultsModule struct { - DefaultableModule +var _ Defaultable = (*DefaultableModuleBase)(nil) + +func InitDefaultableModule(module DefaultableModule) { + module.(Defaultable).setProperties(module.(Module).GetProperties()) + + module.AddProperties(module.defaults()) +} + +type DefaultsModuleBase struct { + DefaultableModuleBase defaultProperties []interface{} } @@ -68,31 +72,31 @@ type Defaults interface { properties() []interface{} } -func (d *DefaultsModule) isDefaults() bool { +func (d *DefaultsModuleBase) isDefaults() bool { return true } -func (d *DefaultsModule) properties() []interface{} { +func (d *DefaultsModuleBase) properties() []interface{} { return d.defaultableProperties } -func InitDefaultsModule(module Module, d Defaults) { +func InitDefaultsModule(module DefaultableModule) { module.AddProperties( &hostAndDeviceProperties{}, &commonProperties{}, &variableProperties{}) InitArchModule(module) - InitDefaultableModule(module, d) + InitDefaultableModule(module) module.AddProperties(&module.base().nameProperties) module.base().module = module } -var _ Defaults = (*DefaultsModule)(nil) +var _ Defaults = (*DefaultsModuleBase)(nil) -func (defaultable *DefaultableModule) applyDefaults(ctx TopDownMutatorContext, +func (defaultable *DefaultableModuleBase) applyDefaults(ctx TopDownMutatorContext, defaultsList []Defaults) { for _, defaults := range defaultsList { diff --git a/cc/cc.go b/cc/cc.go index 8fc0ebdf3..3824a3be0 100644 --- a/cc/cc.go +++ b/cc/cc.go @@ -275,7 +275,7 @@ var ( // to construct the output file. Behavior can be customized with a Customizer interface type Module struct { android.ModuleBase - android.DefaultableModule + android.DefaultableModuleBase Properties BaseProperties unused UnusedProperties @@ -339,7 +339,7 @@ func (c *Module) Init() android.Module { android.InitAndroidArchModule(c, c.hod, c.multilib) - android.InitDefaultableModule(c, c) + android.InitDefaultableModule(c) return c } @@ -1138,7 +1138,7 @@ func (c *Module) HostToolPath() android.OptionalPath { // type Defaults struct { android.ModuleBase - android.DefaultsModule + android.DefaultsModuleBase } func (*Defaults) GenerateAndroidBuildActions(ctx android.ModuleContext) { @@ -1174,7 +1174,7 @@ func DefaultsFactory(props ...interface{}) android.Module { &SAbiProperties{}, ) - android.InitDefaultsModule(module, module) + android.InitDefaultsModule(module) return module }