Remove permission library
Replace @Enforce annotation with @EnforcePermission. Remove the new
expression syntax (e.g., "permission = INTERNET") in favour of an
annotation-only syntax similar to the current @RequiresPermission
annotation:
@EnforcePermission(anyOf={"INTERNET", "READ_PHONE_STATE"})
void MyAidlMethod();
The Java generator is simplified as nested conditions are not supported
anymore.
Rename @NoPermissionRequired to @RequiresNoPermission to match the
existing Java annotation.
Bug: 197828948
Test: atest --host aidl_unittests
Change-Id: Ia82e81958b050836082ca7527456a99c9422857a
diff --git a/aidl_language.h b/aidl_language.h
index 7d8f625..bf9322b 100644
--- a/aidl_language.h
+++ b/aidl_language.h
@@ -34,7 +34,7 @@
#include "location.h"
#include "logging.h"
#include "options.h"
-#include "permission/parser.h"
+#include "permission.h"
using android::aidl::AidlTypenames;
using android::aidl::CodeWriter;
@@ -289,7 +289,7 @@
void TraverseChildren(std::function<void(const AidlNode&)> traverse) const override;
void DispatchVisit(AidlVisitor& v) const override { v.Visit(*this); }
- Result<unique_ptr<perm::Expression>> EnforceExpression() const;
+ Result<unique_ptr<android::aidl::perm::Expression>> EnforceExpression() const;
private:
struct ParamType {
@@ -360,7 +360,7 @@
const AidlAnnotation* RustDerive() const;
const AidlAnnotation* BackingType() const;
std::vector<std::string> SuppressWarnings() const;
- std::unique_ptr<perm::Expression> EnforceExpression() const;
+ std::unique_ptr<android::aidl::perm::Expression> EnforceExpression() const;
bool IsPermissionManual() const;
bool IsPermissionNone() const;