AidlConstantValue::EvaluatedValue<T>() in the header
Renamed from Cast<T>() and moved to the header to avoid linker errors.
This should be a small refactoring but turns out to be quite big because
of inclusion dependencies.
- AidlLocation is moved to its own location.h/.cpp
- Some AidlErrorLog's methods are implemented in .cpp
Bug: none
Test: aidl_unittests
Change-Id: I3b77aa24ed9362f35a163c3e3cd5c73fb23bd35f
diff --git a/aidl_unittest.cpp b/aidl_unittest.cpp
index e654086..091c7ee 100644
--- a/aidl_unittest.cpp
+++ b/aidl_unittest.cpp
@@ -1030,25 +1030,26 @@
EXPECT_THAT(code, testing::HasSubstr("public static final int y = 1;"));
}
-TEST_F(AidlTest, ConstantValueCast) {
+TEST_F(AidlTest, AidlConstantValue_EvaluatedValue) {
using Ptr = unique_ptr<AidlConstantValue>;
const AidlLocation& loc = AIDL_LOCATION_HERE;
- EXPECT_EQ('c', Ptr(AidlConstantValue::Character(loc, 'c'))->Cast<char>());
- EXPECT_EQ("abc", Ptr(AidlConstantValue::String(loc, "\"abc\""))->Cast<string>());
- EXPECT_FLOAT_EQ(1.0f, Ptr(AidlConstantValue::Floating(loc, "1.0"))->Cast<float>());
- EXPECT_EQ(true, Ptr(AidlConstantValue::Boolean(loc, true))->Cast<bool>());
+ EXPECT_EQ('c', Ptr(AidlConstantValue::Character(loc, 'c'))->EvaluatedValue<char>());
+ EXPECT_EQ("abc", Ptr(AidlConstantValue::String(loc, "\"abc\""))->EvaluatedValue<string>());
+ EXPECT_FLOAT_EQ(1.0f, Ptr(AidlConstantValue::Floating(loc, "1.0f"))->EvaluatedValue<float>());
+ EXPECT_EQ(true, Ptr(AidlConstantValue::Boolean(loc, true))->EvaluatedValue<bool>());
AidlBinaryConstExpression one_plus_one(loc, Ptr(AidlConstantValue::Integral(loc, "1")), "+",
Ptr(AidlConstantValue::Integral(loc, "1")));
- EXPECT_EQ(2, one_plus_one.Cast<int32_t>());
+ EXPECT_EQ(2, one_plus_one.EvaluatedValue<int32_t>());
auto values = unique_ptr<vector<Ptr>>{new vector<Ptr>};
values->emplace_back(AidlConstantValue::String(loc, "\"hello\""));
values->emplace_back(AidlConstantValue::String(loc, "\"world\""));
vector<string> expected{"hello", "world"};
- EXPECT_EQ(expected,
- Ptr(AidlConstantValue::Array(loc, std::move(values)))->Cast<vector<string>>());
+ EXPECT_EQ(
+ expected,
+ Ptr(AidlConstantValue::Array(loc, std::move(values)))->EvaluatedValue<vector<string>>());
}
TEST_P(AidlTest, FailOnManyDefinedTypes) {