Merge "Change conditional keep rule syntax"

This commit is contained in:
TreeHugger Robot
2017-11-13 20:02:41 +00:00
committed by Android (Google) Code Review
2 changed files with 7 additions and 8 deletions

View File

@@ -345,15 +345,14 @@ bool WriteKeepSet(std::ostream* out, const KeepSet& keep_set) {
*out << "# Referenced at " << location.source << "\n";
}
if (keep_set.conditional_keep_rules_ && can_be_conditional) {
*out << "-keep class " << entry.first << " {\n ifused class **.R$layout {\n";
*out << "-if class **.R$layout {\n";
for (const UsageLocation& location : locations) {
auto transformed_name = JavaClassGenerator::TransformToFieldName(location.name.entry);
*out << " int " << transformed_name << ";\n";
*out << " int " << transformed_name << ";\n";
}
*out << " };\n <init>(...);\n}\n" << std::endl;
} else {
*out << "-keep class " << entry.first << " { <init>(...); }\n" << std::endl;
*out << "}\n";
}
*out << "-keep class " << entry.first << " { <init>(...); }\n" << std::endl;
}
for (const auto& entry : keep_set.method_set_) {

View File

@@ -130,7 +130,7 @@ TEST(ProguardRulesTest, IncludedLayoutRulesAreConditional) {
ASSERT_TRUE(proguard::WriteKeepSet(&out, set));
std::string actual = out.str();
EXPECT_THAT(actual, HasSubstr("ifused class **.R$layout"));
EXPECT_THAT(actual, HasSubstr("-if class **.R$layout"));
EXPECT_THAT(actual, HasSubstr("int foo"));
EXPECT_THAT(actual, HasSubstr("int bar"));
EXPECT_THAT(actual, HasSubstr("com.foo.Bar"));
@@ -152,7 +152,7 @@ TEST(ProguardRulesTest, AliasedLayoutRulesAreConditional) {
ASSERT_TRUE(proguard::WriteKeepSet(&out, set));
std::string actual = out.str();
EXPECT_THAT(actual, HasSubstr("ifused class **.R$layout"));
EXPECT_THAT(actual, HasSubstr("-if class **.R$layout"));
EXPECT_THAT(actual, HasSubstr("int foo"));
EXPECT_THAT(actual, HasSubstr("int bar"));
EXPECT_THAT(actual, HasSubstr("com.foo.Bar"));
@@ -174,7 +174,7 @@ TEST(ProguardRulesTest, NonLayoutReferencesAreUnconditional) {
ASSERT_TRUE(proguard::WriteKeepSet(&out, set));
std::string actual = out.str();
EXPECT_THAT(actual, Not(HasSubstr("ifused")));
EXPECT_THAT(actual, Not(HasSubstr("-if")));
}
TEST(ProguardRulesTest, ViewOnClickRuleIsEmitted) {