Reject "out ParcelFileDescriptor" parameters

Out(not inout) parameters should be known how to create it. But in Java,
ParcelFileDescriptor is not default constructible and there's no way to
construct it from nothing.

Instead of rejecting it only in Java, we reject it in every backend for
future compatibility.

Bug: 181194872
Test: aidl_unittests
Change-Id: I93637bb6f5bbbd9f4c3119c0baa8ba4042fc2305
diff --git a/aidl_language.h b/aidl_language.h
index d223740..e0c28a0 100644
--- a/aidl_language.h
+++ b/aidl_language.h
@@ -538,6 +538,7 @@
   bool IsIn() const { return direction_ & IN_DIR; }
   bool DirectionWasSpecified() const { return direction_specified_; }
   string GetDirectionSpecifier() const;
+  bool CheckValid(const AidlTypenames& typenames) const;
 
   // ToString is for dumping AIDL.
   // Returns string representation of this argument including direction
@@ -555,6 +556,11 @@
   bool direction_specified_;
 };
 
+struct ArgumentAspect {
+  std::string name;
+  std::set<AidlArgument::Direction> possible_directions;
+};
+
 class AidlUnaryConstExpression;
 class AidlBinaryConstExpression;
 class AidlConstantReference;