| // Copyright 2017 The Bazel Authors. All rights reserved. |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| package com.google.devtools.build.android.desugar.testdata.java8; |
| |
| /** |
| * An interface that has a default method, and a non-empty static initializer. The initializer is |
| * NOT expected to run during desugaring. |
| */ |
| public interface FunctionalInterfaceWithInitializerAndDefaultMethods { |
| |
| ClassWithInitializer CONSTANT = new ClassWithInitializer(); |
| boolean BOOLEAN = getFalse(); |
| char CHAR = "hello".charAt(0); |
| byte BYTE = Byte.parseByte("0"); |
| short SHORT = Short.parseShort("0"); |
| int INT = Integer.parseInt("0"); |
| float FLOAT = Float.parseFloat("0"); |
| long LONG = Long.parseLong("0"); |
| double DOUBLE = Double.parseDouble("0"); |
| |
| int convert(); |
| |
| /** |
| * The default method ensures that the static initializer of this interface will be executed when |
| * the interface is loaded. |
| */ |
| default void defaultMethod() {} |
| |
| static boolean getFalse() { |
| return false; |
| } |
| |
| /** |
| * A class with a static initializer that has side effects (In this class, the printing to stdout) |
| */ |
| class ClassWithInitializer { |
| static { |
| System.out.println("THIS STRING IS NOT EXPECTED TO APPEAR IN THE OUTPUT OF DESUGAR!!!"); |
| } |
| |
| /** |
| * A lambda to trigger Desugar to load the interface {@link |
| * FunctionalInterfaceWithInitializerAndDefaultMethods} |
| */ |
| public FunctionalInterfaceWithInitializerAndDefaultMethods length(String s) { |
| return s::length; |
| } |
| } |
| } |