Revert "Prevent runtime module paths being used in include_dirs"

This reverts commit 31d0688df939fe9a87595281667e8bcd0566a51b.

Reason for revert: cause build breakage on stage-aosp-master

Change-Id: I7626f8ec36caaaa5eb4c7e9891565fc164a7f6c7
diff --git a/android/neverallow.go b/android/neverallow.go
index 8f1f1e0..ad1d5bd 100644
--- a/android/neverallow.go
+++ b/android/neverallow.go
@@ -48,7 +48,6 @@
 var neverallows = []Rule{}
 
 func init() {
-	AddNeverAllowRules(createIncludeDirsRules()...)
 	AddNeverAllowRules(createTrebleRules()...)
 	AddNeverAllowRules(createLibcoreRules()...)
 	AddNeverAllowRules(createMediaRules()...)
@@ -60,42 +59,6 @@
 	neverallows = append(neverallows, rules...)
 }
 
-func createIncludeDirsRules() []Rule {
-	// The list of paths that cannot be referenced using include_dirs
-	paths := []string{
-		"art",
-		"libcore",
-		"libnativehelper",
-		"external/apache-harmony",
-		"external/apache-xml",
-		"external/boringssl",
-		"external/bouncycastle",
-		"external/conscrypt",
-		"external/icu",
-		"external/okhttp",
-		"external/vixl",
-		"external/wycheproof",
-		"system/core/libnativebridge",
-		"system/core/libnativehelper",
-	}
-
-	// Create a composite matcher that will match if the value starts with any of the restricted
-	// paths. A / is appended to the prefix to ensure that restricting path X does not affect paths
-	// XY.
-	rules := make([]Rule, 0, len(paths))
-	for _, path := range paths {
-		rule :=
-			NeverAllow().
-				WithMatcher("include_dirs", StartsWith(path+"/")).
-				Because("include_dirs is deprecated, all usages of '" + path + "' have been migrated" +
-					" to use alternate mechanisms and so can no longer be used.")
-
-		rules = append(rules, rule)
-	}
-
-	return rules
-}
-
 func createTrebleRules() []Rule {
 	return []Rule{
 		NeverAllow().
@@ -232,18 +195,6 @@
 
 var anyMatcherInstance = &anyMatcher{}
 
-type startsWithMatcher struct {
-	prefix string
-}
-
-func (m *startsWithMatcher) test(value string) bool {
-	return strings.HasPrefix(value, m.prefix)
-}
-
-func (m *startsWithMatcher) String() string {
-	return ".starts-with(" + m.prefix + ")"
-}
-
 type ruleProperty struct {
 	fields  []string // e.x.: Vndk.Enabled
 	matcher ValueMatcher
@@ -261,12 +212,8 @@
 
 	With(properties, value string) Rule
 
-	WithMatcher(properties string, matcher ValueMatcher) Rule
-
 	Without(properties, value string) Rule
 
-	WithoutMatcher(properties string, matcher ValueMatcher) Rule
-
 	Because(reason string) Rule
 }
 
@@ -310,25 +257,17 @@
 }
 
 func (r *rule) With(properties, value string) Rule {
-	return r.WithMatcher(properties, selectMatcher(value))
-}
-
-func (r *rule) WithMatcher(properties string, matcher ValueMatcher) Rule {
 	r.props = append(r.props, ruleProperty{
 		fields:  fieldNamesForProperties(properties),
-		matcher: matcher,
+		matcher: selectMatcher(value),
 	})
 	return r
 }
 
 func (r *rule) Without(properties, value string) Rule {
-	return r.WithoutMatcher(properties, selectMatcher(value))
-}
-
-func (r *rule) WithoutMatcher(properties string, matcher ValueMatcher) Rule {
 	r.unlessProps = append(r.unlessProps, ruleProperty{
 		fields:  fieldNamesForProperties(properties),
-		matcher: matcher,
+		matcher: selectMatcher(value),
 	})
 	return r
 }
@@ -387,10 +326,6 @@
 	return includeProps && !excludeProps
 }
 
-func StartsWith(prefix string) ValueMatcher {
-	return &startsWithMatcher{prefix}
-}
-
 // assorted utils
 
 func cleanPaths(paths []string) []string {