1*6777b538SAndroid Build Coastguard Worker# Copyright 2022 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker# found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker# Remove Log.d(), Log.v(), and corresponding isLoggable() calls. 6*6777b538SAndroid Build Coastguard Worker# Log.DEBUG = 3, Log.VERBOSE = 2. 7*6777b538SAndroid Build Coastguard Worker# https://stackoverflow.com/questions/73876633/what-does-the-r8-maximumremovedandroidloglevel-option 8*6777b538SAndroid Build Coastguard Worker-maximumremovedandroidloglevel 3 9*6777b538SAndroid Build Coastguard Worker 10*6777b538SAndroid Build Coastguard Worker# Makes try-with-resources less inefficient. Saved 3.8kb when added. 11*6777b538SAndroid Build Coastguard Worker-assumenosideeffects class java.lang.Throwable { 12*6777b538SAndroid Build Coastguard Worker void addSuppressed(...); 13*6777b538SAndroid Build Coastguard Worker} 14*6777b538SAndroid Build Coastguard Worker 15*6777b538SAndroid Build Coastguard Worker# Remove all logging calls via JDK Loggers. They are generally from 16*6777b538SAndroid Build Coastguard Worker# unused parts of third-party libraries. 17*6777b538SAndroid Build Coastguard Worker-assumenosideeffects class java.util.logging.Logger { 18*6777b538SAndroid Build Coastguard Worker void finest(...); 19*6777b538SAndroid Build Coastguard Worker void finer(...); 20*6777b538SAndroid Build Coastguard Worker void fine(...); 21*6777b538SAndroid Build Coastguard Worker void info(...); 22*6777b538SAndroid Build Coastguard Worker void warning(...); 23*6777b538SAndroid Build Coastguard Worker void severe(...); 24*6777b538SAndroid Build Coastguard Worker void throwing(...); 25*6777b538SAndroid Build Coastguard Worker void log(...); 26*6777b538SAndroid Build Coastguard Worker void logp(...); 27*6777b538SAndroid Build Coastguard Worker static java.util.logging.Logger getLogger(...) return _NONNULL_; 28*6777b538SAndroid Build Coastguard Worker boolean isLoggable(...) return false; 29*6777b538SAndroid Build Coastguard Worker} 30*6777b538SAndroid Build Coastguard Worker 31*6777b538SAndroid Build Coastguard Worker# Remove accesses to Level.<thing> that go unused. 32*6777b538SAndroid Build Coastguard Worker-assumenosideeffects class java.util.logging.Level { 33*6777b538SAndroid Build Coastguard Worker <fields>; 34*6777b538SAndroid Build Coastguard Worker # Flogger uses Level objects, so do not set a return value for intValue(). 35*6777b538SAndroid Build Coastguard Worker int intValue(); 36*6777b538SAndroid Build Coastguard Worker} 37*6777b538SAndroid Build Coastguard Worker 38*6777b538SAndroid Build Coastguard Worker# Remove fields of type Logger. 39*6777b538SAndroid Build Coastguard Worker-assumenosideeffects class * { 40*6777b538SAndroid Build Coastguard Worker java.util.logging.Logger * return _NONNULL_; 41*6777b538SAndroid Build Coastguard Worker} 42