| // 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.kotlin; |
| |
| import kotlinx.metadata.KmTypeProjection; |
| import kotlinx.metadata.KmVariance; |
| |
| // Provides access to Kotlin information about the type projection of a type (arguments). |
| public class KotlinTypeProjectionInfo { |
| |
| final KmVariance variance; |
| final KotlinTypeInfo typeInfo; |
| |
| private KotlinTypeProjectionInfo(KmVariance variance, KotlinTypeInfo typeInfo) { |
| this.variance = variance; |
| this.typeInfo = typeInfo; |
| } |
| |
| static KotlinTypeProjectionInfo create(KmTypeProjection kmTypeProjection) { |
| return new KotlinTypeProjectionInfo( |
| kmTypeProjection.getVariance(), KotlinTypeInfo.create(kmTypeProjection.getType())); |
| } |
| } |