Fix nullderef when ConstantReference::Resolve fails
This is a regression due to aosp/1538630.
Bug: 176888762
Test: aidl_unittests
Change-Id: I3e608f128ecc3bf5b58db4e90069c70293536e5b
diff --git a/aidl_unittest.cpp b/aidl_unittest.cpp
index 53dcc7a..29bab6f 100644
--- a/aidl_unittest.cpp
+++ b/aidl_unittest.cpp
@@ -4300,6 +4300,19 @@
EXPECT_EQ("", GetCapturedStderr());
}
+TEST_P(AidlTest, UnknownConstReference) {
+ io_delegate_.SetFileContents("Foo.aidl", " parcelable Foo { UnknownType field = UNKNOWN_REF; }");
+ auto options =
+ Options::From("aidl --lang " + to_string(GetLanguage()) + " -o out -h out Foo.aidl");
+ const string err =
+ "ERROR: Foo.aidl:1.18-30: Failed to resolve 'UnknownType'\n"
+ "ERROR: Foo.aidl:1.38-50: Can't find UNKNOWN_REF in Foo\n"
+ "ERROR: Foo.aidl:1.38-50: Unknown reference 'UNKNOWN_REF'\n";
+ CaptureStderr();
+ EXPECT_EQ(1, aidl::compile_aidl(options, io_delegate_));
+ EXPECT_EQ(err, GetCapturedStderr());
+}
+
TEST_P(AidlTest, JavaCompatibleBuiltinTypes) {
string contents = R"(
import android.os.IBinder;