| # Copyright (c) 2018, the R8 project authors. Please see the AUTHORS file | 
 | # for details. All rights reserved. Use of this source code is governed by a | 
 | # BSD-style license that can be found in the LICENSE file. | 
 |  | 
 | -keepattributes *Annotation* | 
 |  | 
 | -keep class **.InterfaceUser { | 
 |   public static void main(...); | 
 | } | 
 |  | 
 | -keep class **.InterfaceTest { *; } | 
 |  | 
 | # Mockito generates mocks of interface types at runtime. If interface methods are optimized, i.e., | 
 | # stripped out, mock-based tests will fail. So, keep all methods of interfaces if they are used as | 
 | # field type and annotated with @Mock. | 
 | -if class * { | 
 |   @org.mockito.Mock * *; | 
 | } | 
 | -keep interface <2> { | 
 |   <methods>; | 
 | } |