|  | // Copyright (c) 2020, 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. | 
|  | package com.android.tools.r8.errors; | 
|  |  | 
|  | import com.android.tools.r8.Keep; | 
|  | import com.android.tools.r8.origin.Origin; | 
|  | import com.android.tools.r8.references.ClassReference; | 
|  |  | 
|  | /** | 
|  | * Diagnostic information about a class file which could not be generated as the size of the | 
|  | * required constant pool overflowed the limit. | 
|  | */ | 
|  | @Keep | 
|  | public class ConstantPoolOverflowDiagnostic extends ClassFileOverflowDiagnostic { | 
|  |  | 
|  | private final int constantPoolSize; | 
|  | private final ClassReference clazz; | 
|  |  | 
|  | public ConstantPoolOverflowDiagnostic(Origin origin, ClassReference clazz, int constantPoolSize) { | 
|  | super(origin); | 
|  | this.clazz = clazz; | 
|  | this.constantPoolSize = constantPoolSize; | 
|  | } | 
|  |  | 
|  | /** Constant pool size of the clazz. */ | 
|  | public int getConstantPoolSize() { | 
|  | return constantPoolSize; | 
|  | } | 
|  |  | 
|  | @Override | 
|  | public String getDiagnosticMessage() { | 
|  | return "Class " | 
|  | + clazz | 
|  | + " too large for class file." | 
|  | + " Constant pool size was " | 
|  | + getConstantPoolSize() | 
|  | + "."; | 
|  | } | 
|  | } |