Loading android/neverallow.go +32 −0 Original line number Diff line number Diff line Loading @@ -175,6 +175,8 @@ func neverallowMutator(ctx BottomUpMutatorContext) { dir := ctx.ModuleDir() + "/" properties := m.GetProperties() osClass := ctx.Module().Target().Os.Class for _, r := range neverallows { n := r.(*rule) if !n.appliesToPath(dir) { Loading @@ -189,6 +191,10 @@ func neverallowMutator(ctx BottomUpMutatorContext) { continue } if !n.appliesToOsClass(osClass) { continue } if !n.appliesToDirectDeps(ctx) { continue } Loading Loading @@ -252,6 +258,8 @@ type Rule interface { InDirectDeps(deps ...string) Rule WithOsClass(osClasses ...OsClass) Rule ModuleType(types ...string) Rule NotModuleType(types ...string) Rule Loading @@ -276,6 +284,8 @@ type rule struct { directDeps map[string]bool osClasses []OsClass moduleTypes []string unlessModuleTypes []string Loading Loading @@ -305,6 +315,11 @@ func (r *rule) InDirectDeps(deps ...string) Rule { return r } func (r *rule) WithOsClass(osClasses ...OsClass) Rule { r.osClasses = append(r.osClasses, osClasses...) return r } func (r *rule) ModuleType(types ...string) Rule { r.moduleTypes = append(r.moduleTypes, types...) return r Loading Loading @@ -374,6 +389,9 @@ func (r *rule) String() string { for k := range r.directDeps { s += " deps:" + k } for _, v := range r.osClasses { s += " os:" + v.String() } if len(r.reason) != 0 { s += " which is restricted because " + r.reason } Loading Loading @@ -402,6 +420,20 @@ func (r *rule) appliesToDirectDeps(ctx BottomUpMutatorContext) bool { return matches } func (r *rule) appliesToOsClass(osClass OsClass) bool { if len(r.osClasses) == 0 { return true } for _, c := range r.osClasses { if c == osClass { return true } } return false } func (r *rule) appliesToModuleType(moduleType string) bool { return (len(r.moduleTypes) == 0 || InList(moduleType, r.moduleTypes)) && !InList(moduleType, r.unlessModuleTypes) } Loading Loading
android/neverallow.go +32 −0 Original line number Diff line number Diff line Loading @@ -175,6 +175,8 @@ func neverallowMutator(ctx BottomUpMutatorContext) { dir := ctx.ModuleDir() + "/" properties := m.GetProperties() osClass := ctx.Module().Target().Os.Class for _, r := range neverallows { n := r.(*rule) if !n.appliesToPath(dir) { Loading @@ -189,6 +191,10 @@ func neverallowMutator(ctx BottomUpMutatorContext) { continue } if !n.appliesToOsClass(osClass) { continue } if !n.appliesToDirectDeps(ctx) { continue } Loading Loading @@ -252,6 +258,8 @@ type Rule interface { InDirectDeps(deps ...string) Rule WithOsClass(osClasses ...OsClass) Rule ModuleType(types ...string) Rule NotModuleType(types ...string) Rule Loading @@ -276,6 +284,8 @@ type rule struct { directDeps map[string]bool osClasses []OsClass moduleTypes []string unlessModuleTypes []string Loading Loading @@ -305,6 +315,11 @@ func (r *rule) InDirectDeps(deps ...string) Rule { return r } func (r *rule) WithOsClass(osClasses ...OsClass) Rule { r.osClasses = append(r.osClasses, osClasses...) return r } func (r *rule) ModuleType(types ...string) Rule { r.moduleTypes = append(r.moduleTypes, types...) return r Loading Loading @@ -374,6 +389,9 @@ func (r *rule) String() string { for k := range r.directDeps { s += " deps:" + k } for _, v := range r.osClasses { s += " os:" + v.String() } if len(r.reason) != 0 { s += " which is restricted because " + r.reason } Loading Loading @@ -402,6 +420,20 @@ func (r *rule) appliesToDirectDeps(ctx BottomUpMutatorContext) bool { return matches } func (r *rule) appliesToOsClass(osClass OsClass) bool { if len(r.osClasses) == 0 { return true } for _, c := range r.osClasses { if c == osClass { return true } } return false } func (r *rule) appliesToModuleType(moduleType string) bool { return (len(r.moduleTypes) == 0 || InList(moduleType, r.moduleTypes)) && !InList(moduleType, r.unlessModuleTypes) } Loading