Get rid of underscores in private property names
They were used to workaround duplicate signature errors, but this is no longer relevant since no accessors are generated for private properties with backing fields
This commit is contained in:
@@ -47,7 +47,7 @@ public fun <Signature> generateBridgesForFunctionDescriptor(
|
|||||||
* eases the process of determining what bridges are already generated in our supertypes and need to be inherited, not regenerated.
|
* eases the process of determining what bridges are already generated in our supertypes and need to be inherited, not regenerated.
|
||||||
*/
|
*/
|
||||||
private data class DescriptorBasedFunctionHandle(val descriptor: FunctionDescriptor) : FunctionHandle {
|
private data class DescriptorBasedFunctionHandle(val descriptor: FunctionDescriptor) : FunctionHandle {
|
||||||
private val _overridden = descriptor.getOverriddenDescriptors().map { DescriptorBasedFunctionHandle(it.getOriginal()) }
|
private val overridden = descriptor.getOverriddenDescriptors().map { DescriptorBasedFunctionHandle(it.getOriginal()) }
|
||||||
|
|
||||||
override val isDeclaration: Boolean =
|
override val isDeclaration: Boolean =
|
||||||
descriptor.getKind().isReal() ||
|
descriptor.getKind().isReal() ||
|
||||||
@@ -57,7 +57,7 @@ private data class DescriptorBasedFunctionHandle(val descriptor: FunctionDescrip
|
|||||||
descriptor.getModality() == Modality.ABSTRACT ||
|
descriptor.getModality() == Modality.ABSTRACT ||
|
||||||
DescriptorUtils.isTrait(descriptor.getContainingDeclaration())
|
DescriptorUtils.isTrait(descriptor.getContainingDeclaration())
|
||||||
|
|
||||||
override fun getOverridden() = _overridden
|
override fun getOverridden() = overridden
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+4
-6
@@ -94,7 +94,7 @@ public class IncrementalPackageFragmentProvider(
|
|||||||
public val moduleId: String
|
public val moduleId: String
|
||||||
get() = this@IncrementalPackageFragmentProvider.moduleId
|
get() = this@IncrementalPackageFragmentProvider.moduleId
|
||||||
|
|
||||||
val _memberScope: NotNullLazyValue<JetScope> = storageManager.createLazyValue {
|
val memberScope: NotNullLazyValue<JetScope> = storageManager.createLazyValue {
|
||||||
if (fqName !in fqNamesToLoad) {
|
if (fqName !in fqNamesToLoad) {
|
||||||
JetScope.Empty
|
JetScope.Empty
|
||||||
}
|
}
|
||||||
@@ -109,16 +109,14 @@ public class IncrementalPackageFragmentProvider(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getMemberScope(): JetScope {
|
override fun getMemberScope(): JetScope = memberScope()
|
||||||
return _memberScope()
|
|
||||||
}
|
|
||||||
|
|
||||||
private inner class IncrementalPackageScope(val packageData: PackageData) : DeserializedPackageMemberScope(
|
private inner class IncrementalPackageScope(val packageData: PackageData) : DeserializedPackageMemberScope(
|
||||||
this@IncrementalPackageFragment,
|
this@IncrementalPackageFragment,
|
||||||
packageData.getPackageProto(),
|
packageData.getPackageProto(),
|
||||||
deserializationContext.withNameResolver(packageData.getNameResolver()),
|
deserializationContext.withNameResolver(packageData.getNameResolver()),
|
||||||
{ listOf() }) {
|
{ listOf() }
|
||||||
|
) {
|
||||||
override fun filteredMemberProtos(allMemberProtos: Collection<ProtoBuf.Callable>): Collection<ProtoBuf.Callable> {
|
override fun filteredMemberProtos(allMemberProtos: Collection<ProtoBuf.Callable>): Collection<ProtoBuf.Callable> {
|
||||||
return allMemberProtos
|
return allMemberProtos
|
||||||
.filter {
|
.filter {
|
||||||
|
|||||||
+2
-2
@@ -22,8 +22,8 @@ import kotlin.properties.Delegates
|
|||||||
|
|
||||||
public class LexicalScope(val parentScope: LexicalScope?, val element: JetElement) {
|
public class LexicalScope(val parentScope: LexicalScope?, val element: JetElement) {
|
||||||
//todo remove after KT-4126
|
//todo remove after KT-4126
|
||||||
private val _d = (parentScope?.depth ?: 0) + 1
|
private val d = (parentScope?.depth ?: 0) + 1
|
||||||
val depth: Int get() = _d
|
val depth: Int get() = d
|
||||||
|
|
||||||
val lexicalScopeForContainingDeclaration: LexicalScope? by Delegates.lazy { computeLexicalScopeForContainingDeclaration() }
|
val lexicalScopeForContainingDeclaration: LexicalScope? by Delegates.lazy { computeLexicalScopeForContainingDeclaration() }
|
||||||
private fun computeLexicalScopeForContainingDeclaration(): LexicalScope? {
|
private fun computeLexicalScopeForContainingDeclaration(): LexicalScope? {
|
||||||
|
|||||||
@@ -31,76 +31,76 @@ public abstract class JetCodeFragment(
|
|||||||
name: String,
|
name: String,
|
||||||
text: CharSequence,
|
text: CharSequence,
|
||||||
elementType: IElementType,
|
elementType: IElementType,
|
||||||
private val _context: PsiElement?
|
private val context: PsiElement?
|
||||||
): JetFile((PsiManager.getInstance(_project) as PsiManagerEx).getFileManager().createFileViewProvider(LightVirtualFile(name, JetFileType.INSTANCE, text), true), false), JavaCodeFragment {
|
): JetFile((PsiManager.getInstance(_project) as PsiManagerEx).getFileManager().createFileViewProvider(LightVirtualFile(name, JetFileType.INSTANCE, text), true), false), JavaCodeFragment {
|
||||||
|
|
||||||
private var _viewProvider = super<JetFile>.getViewProvider() as SingleRootFileViewProvider
|
private var viewProvider = super<JetFile>.getViewProvider() as SingleRootFileViewProvider
|
||||||
private var _myImports = HashSet<String>();
|
private var myImports = HashSet<String>();
|
||||||
|
|
||||||
{
|
{
|
||||||
getViewProvider().forceCachedPsi(this)
|
getViewProvider().forceCachedPsi(this)
|
||||||
init(TokenType.CODE_FRAGMENT, elementType)
|
init(TokenType.CODE_FRAGMENT, elementType)
|
||||||
if (_context != null) {
|
if (context != null) {
|
||||||
addImportsFromString(getImportsForElement(_context))
|
addImportsFromString(getImportsForElement(context))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private var _resolveScope: GlobalSearchScope? = null
|
private var resolveScope: GlobalSearchScope? = null
|
||||||
private var _thisType: PsiType? = null
|
private var thisType: PsiType? = null
|
||||||
private var _superType: PsiType? = null
|
private var superType: PsiType? = null
|
||||||
private var _exceptionHandler: JavaCodeFragment.ExceptionHandler? = null
|
private var exceptionHandler: JavaCodeFragment.ExceptionHandler? = null
|
||||||
|
|
||||||
public abstract fun getContentElement(): JetElement?
|
public abstract fun getContentElement(): JetElement?
|
||||||
|
|
||||||
override fun forceResolveScope(scope: GlobalSearchScope?) {
|
override fun forceResolveScope(scope: GlobalSearchScope?) {
|
||||||
_resolveScope = scope
|
resolveScope = scope
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getForcedResolveScope() = _resolveScope
|
override fun getForcedResolveScope() = resolveScope
|
||||||
|
|
||||||
override fun isPhysical() = true
|
override fun isPhysical() = true
|
||||||
|
|
||||||
override fun isValid() = true
|
override fun isValid() = true
|
||||||
|
|
||||||
override fun getContext() = _context
|
override fun getContext() = context
|
||||||
|
|
||||||
override fun getResolveScope() = _resolveScope ?: super<JetFile>.getResolveScope()
|
override fun getResolveScope() = resolveScope ?: super<JetFile>.getResolveScope()
|
||||||
|
|
||||||
override fun clone(): JetCodeFragment {
|
override fun clone(): JetCodeFragment {
|
||||||
val clone = cloneImpl(calcTreeElement().clone() as FileElement) as JetCodeFragment
|
val clone = cloneImpl(calcTreeElement().clone() as FileElement) as JetCodeFragment
|
||||||
clone.setOriginalFile(this)
|
clone.setOriginalFile(this)
|
||||||
clone._myImports = _myImports
|
clone.myImports = myImports
|
||||||
clone._viewProvider = SingleRootFileViewProvider(PsiManager.getInstance(_project), LightVirtualFile(getName(), JetFileType.INSTANCE, getText()), true)
|
clone.viewProvider = SingleRootFileViewProvider(PsiManager.getInstance(_project), LightVirtualFile(getName(), JetFileType.INSTANCE, getText()), true)
|
||||||
clone._viewProvider.forceCachedPsi(clone)
|
clone.viewProvider.forceCachedPsi(clone)
|
||||||
return clone
|
return clone
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getViewProvider() = _viewProvider
|
override fun getViewProvider() = viewProvider
|
||||||
|
|
||||||
override fun getThisType() = _thisType
|
override fun getThisType() = thisType
|
||||||
|
|
||||||
override fun setThisType(psiType: PsiType?) {
|
override fun setThisType(psiType: PsiType?) {
|
||||||
_thisType = psiType
|
thisType = psiType
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getSuperType() = _superType
|
override fun getSuperType() = superType
|
||||||
|
|
||||||
override fun setSuperType(superType: PsiType?) {
|
override fun setSuperType(superType: PsiType?) {
|
||||||
_superType = superType
|
$superType = superType
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun importsToString(): String {
|
override fun importsToString(): String {
|
||||||
return _myImports.makeString(IMPORT_SEPARATOR)
|
return myImports.makeString(IMPORT_SEPARATOR)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun addImportsFromString(imports: String?) {
|
override fun addImportsFromString(imports: String?) {
|
||||||
if (imports == null || imports.isEmpty()) return
|
if (imports == null || imports.isEmpty()) return
|
||||||
|
|
||||||
_myImports.addAll(imports.split(IMPORT_SEPARATOR))
|
myImports.addAll(imports.split(IMPORT_SEPARATOR))
|
||||||
}
|
}
|
||||||
|
|
||||||
public fun importsAsImportList(): JetImportList? {
|
public fun importsAsImportList(): JetImportList? {
|
||||||
return JetPsiFactory(this).createFile(_myImports.makeString("\n")).getImportList()
|
return JetPsiFactory(this).createFile(myImports.makeString("\n")).getImportList()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun setVisibilityChecker(checker: JavaCodeFragment.VisibilityChecker?) { }
|
override fun setVisibilityChecker(checker: JavaCodeFragment.VisibilityChecker?) { }
|
||||||
@@ -108,10 +108,10 @@ public abstract class JetCodeFragment(
|
|||||||
override fun getVisibilityChecker() = JavaCodeFragment.VisibilityChecker.EVERYTHING_VISIBLE
|
override fun getVisibilityChecker() = JavaCodeFragment.VisibilityChecker.EVERYTHING_VISIBLE
|
||||||
|
|
||||||
override fun setExceptionHandler(checker: JavaCodeFragment.ExceptionHandler?) {
|
override fun setExceptionHandler(checker: JavaCodeFragment.ExceptionHandler?) {
|
||||||
_exceptionHandler = checker
|
exceptionHandler = checker
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getExceptionHandler() = _exceptionHandler
|
override fun getExceptionHandler() = exceptionHandler
|
||||||
|
|
||||||
override fun importClass(aClass: PsiClass?): Boolean {
|
override fun importClass(aClass: PsiClass?): Boolean {
|
||||||
return true
|
return true
|
||||||
|
|||||||
+11
-11
@@ -53,7 +53,7 @@ public class LazyAnnotations(
|
|||||||
) : Annotations, LazyEntity {
|
) : Annotations, LazyEntity {
|
||||||
override fun isEmpty() = annotationEntries.isEmpty()
|
override fun isEmpty() = annotationEntries.isEmpty()
|
||||||
|
|
||||||
val _annotation = c.storageManager.createMemoizedFunction {
|
private val annotation = c.storageManager.createMemoizedFunction {
|
||||||
(entry: JetAnnotationEntry) ->
|
(entry: JetAnnotationEntry) ->
|
||||||
LazyAnnotationDescriptor(c, entry)
|
LazyAnnotationDescriptor(c, entry)
|
||||||
}
|
}
|
||||||
@@ -77,7 +77,7 @@ public class LazyAnnotations(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun iterator(): Iterator<AnnotationDescriptor> {
|
override fun iterator(): Iterator<AnnotationDescriptor> {
|
||||||
return annotationEntries.stream().map(_annotation).iterator()
|
return annotationEntries.stream().map(annotation).iterator()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun forceResolveAllContents() {
|
override fun forceResolveAllContents() {
|
||||||
@@ -95,7 +95,7 @@ public class LazyAnnotationDescriptor(
|
|||||||
c.trace.record(BindingContext.ANNOTATION, annotationEntry, this)
|
c.trace.record(BindingContext.ANNOTATION, annotationEntry, this)
|
||||||
}
|
}
|
||||||
|
|
||||||
private val _resolutionResults = c.storageManager.createLazyValue {
|
private val resolutionResults = c.storageManager.createLazyValue {
|
||||||
val results = c.annotationResolver.resolveAnnotationCall(
|
val results = c.annotationResolver.resolveAnnotationCall(
|
||||||
annotationEntry,
|
annotationEntry,
|
||||||
c.scope,
|
c.scope,
|
||||||
@@ -105,33 +105,33 @@ public class LazyAnnotationDescriptor(
|
|||||||
results
|
results
|
||||||
}
|
}
|
||||||
|
|
||||||
private val _type = c.storageManager.createLazyValue {
|
private val type = c.storageManager.createLazyValue {
|
||||||
c.annotationResolver.resolveAnnotationType(
|
c.annotationResolver.resolveAnnotationType(
|
||||||
c.scope,
|
c.scope,
|
||||||
annotationEntry
|
annotationEntry
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getType() = _type()
|
override fun getType() = type()
|
||||||
|
|
||||||
private val _valueArguments = c.storageManager.createMemoizedFunctionWithNullableValues @f {
|
private val valueArguments = c.storageManager.createMemoizedFunctionWithNullableValues @f {
|
||||||
(valueParameterDescriptor: ValueParameterDescriptor): CompileTimeConstant<*>? ->
|
(valueParameterDescriptor: ValueParameterDescriptor): CompileTimeConstant<*>? ->
|
||||||
if (!_resolutionResults().isSingleResult()) return@f null
|
if (!resolutionResults().isSingleResult()) return@f null
|
||||||
|
|
||||||
val resolvedValueArgument = _resolutionResults().getResultingCall().getValueArguments()[valueParameterDescriptor]
|
val resolvedValueArgument = resolutionResults().getResultingCall().getValueArguments()[valueParameterDescriptor]
|
||||||
if (resolvedValueArgument == null) return@f null
|
if (resolvedValueArgument == null) return@f null
|
||||||
|
|
||||||
AnnotationResolver.getAnnotationArgumentValue(c.trace, valueParameterDescriptor, resolvedValueArgument)
|
AnnotationResolver.getAnnotationArgumentValue(c.trace, valueParameterDescriptor, resolvedValueArgument)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getValueArgument(valueParameterDescriptor: ValueParameterDescriptor): CompileTimeConstant<out Any?>? {
|
override fun getValueArgument(valueParameterDescriptor: ValueParameterDescriptor): CompileTimeConstant<out Any?>? {
|
||||||
return _valueArguments(valueParameterDescriptor)
|
return valueArguments(valueParameterDescriptor)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getAllValueArguments(): Map<ValueParameterDescriptor, CompileTimeConstant<out Any?>> {
|
override fun getAllValueArguments(): Map<ValueParameterDescriptor, CompileTimeConstant<out Any?>> {
|
||||||
if (!_resolutionResults().isSingleResult()) return mapOf()
|
if (!resolutionResults().isSingleResult()) return mapOf()
|
||||||
|
|
||||||
return _resolutionResults().getResultingCall().getValueArguments().keySet().keysToMapExceptNulls {
|
return resolutionResults().getResultingCall().getValueArguments().keySet().keysToMapExceptNulls {
|
||||||
getValueArgument(it)
|
getValueArgument(it)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+10
-10
@@ -43,10 +43,10 @@ import org.jetbrains.jet.lang.descriptors.PropertyDescriptor
|
|||||||
import org.jetbrains.jet.lang.resolve.source.toSourceElement
|
import org.jetbrains.jet.lang.resolve.source.toSourceElement
|
||||||
|
|
||||||
public class LazyScriptDescriptor(
|
public class LazyScriptDescriptor(
|
||||||
val resolveSession: ResolveSession,
|
private val resolveSession: ResolveSession,
|
||||||
scriptBodyResolver: ScriptBodyResolver,
|
scriptBodyResolver: ScriptBodyResolver,
|
||||||
val jetScript: JetScript,
|
private val jetScript: JetScript,
|
||||||
val _priority: Int
|
private val priority: Int
|
||||||
) : ScriptDescriptor, LazyEntity, DeclarationDescriptorNonRootImpl(
|
) : ScriptDescriptor, LazyEntity, DeclarationDescriptorNonRootImpl(
|
||||||
jetScript.getContainingJetFile().getPackageFqName().let {
|
jetScript.getContainingJetFile().getPackageFqName().let {
|
||||||
fqName ->
|
fqName ->
|
||||||
@@ -60,20 +60,20 @@ public class LazyScriptDescriptor(
|
|||||||
resolveSession.getTrace().record(BindingContext.SCRIPT, jetScript, this)
|
resolveSession.getTrace().record(BindingContext.SCRIPT, jetScript, this)
|
||||||
}
|
}
|
||||||
|
|
||||||
private val _implicitReceiver = ReceiverParameterDescriptorImpl(this, KotlinBuiltIns.getInstance().getAnyType(), ScriptReceiver(this))
|
private val implicitReceiver = ReceiverParameterDescriptorImpl(this, KotlinBuiltIns.getInstance().getAnyType(), ScriptReceiver(this))
|
||||||
|
|
||||||
override fun getThisAsReceiverParameter() = _implicitReceiver
|
override fun getThisAsReceiverParameter() = implicitReceiver
|
||||||
|
|
||||||
override fun getPriority() = _priority
|
override fun getPriority() = priority
|
||||||
|
|
||||||
override fun getClassDescriptor() = resolveSession.getClassDescriptorForScript(jetScript) as LazyScriptClassDescriptor
|
override fun getClassDescriptor() = resolveSession.getClassDescriptorForScript(jetScript) as LazyScriptClassDescriptor
|
||||||
|
|
||||||
override fun getScriptResultProperty(): PropertyDescriptor = getClassDescriptor().getScopeForMemberLookup().getScriptResultProperty()
|
override fun getScriptResultProperty(): PropertyDescriptor = getClassDescriptor().getScopeForMemberLookup().getScriptResultProperty()
|
||||||
|
|
||||||
private val _scriptCodeDescriptor = resolveSession.getStorageManager().createLazyValue {
|
private val scriptCodeDescriptor = resolveSession.getStorageManager().createLazyValue {
|
||||||
val result = ScriptCodeDescriptor(this)
|
val result = ScriptCodeDescriptor(this)
|
||||||
result.initialize(
|
result.initialize(
|
||||||
_implicitReceiver,
|
implicitReceiver,
|
||||||
ScriptParameterResolver.resolveScriptParameters(jetScript, this),
|
ScriptParameterResolver.resolveScriptParameters(jetScript, this),
|
||||||
DeferredType.create(resolveSession.getStorageManager(), resolveSession.getTrace()) {
|
DeferredType.create(resolveSession.getStorageManager(), resolveSession.getTrace()) {
|
||||||
scriptBodyResolver.resolveScriptReturnType(jetScript, this, resolveSession.getTrace())
|
scriptBodyResolver.resolveScriptReturnType(jetScript, this, resolveSession.getTrace())
|
||||||
@@ -82,11 +82,11 @@ public class LazyScriptDescriptor(
|
|||||||
result
|
result
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getScriptCodeDescriptor() = _scriptCodeDescriptor()
|
override fun getScriptCodeDescriptor() = scriptCodeDescriptor()
|
||||||
|
|
||||||
override fun getScopeForBodyResolution(): JetScope {
|
override fun getScopeForBodyResolution(): JetScope {
|
||||||
val parametersScope = WritableScopeImpl(JetScope.Empty, this, RedeclarationHandler.DO_NOTHING, "Parameters of " + this)
|
val parametersScope = WritableScopeImpl(JetScope.Empty, this, RedeclarationHandler.DO_NOTHING, "Parameters of " + this)
|
||||||
parametersScope.setImplicitReceiver(_implicitReceiver)
|
parametersScope.setImplicitReceiver(implicitReceiver)
|
||||||
for (valueParameterDescriptor in getScriptCodeDescriptor().getValueParameters()) {
|
for (valueParameterDescriptor in getScriptCodeDescriptor().getValueParameters()) {
|
||||||
parametersScope.addVariableDescriptor(valueParameterDescriptor)
|
parametersScope.addVariableDescriptor(valueParameterDescriptor)
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -48,7 +48,7 @@ public class LazyJavaPackageFragmentProvider(
|
|||||||
outerContext.moduleClassResolver
|
outerContext.moduleClassResolver
|
||||||
)
|
)
|
||||||
|
|
||||||
private val _packageFragments: MemoizedFunctionToNullable<FqName, LazyJavaPackageFragment> =
|
private val packageFragments: MemoizedFunctionToNullable<FqName, LazyJavaPackageFragment> =
|
||||||
c.storageManager.createMemoizedFunctionWithNullableValues {
|
c.storageManager.createMemoizedFunctionWithNullableValues {
|
||||||
fqName ->
|
fqName ->
|
||||||
val jPackage = c.finder.findPackage(fqName)
|
val jPackage = c.finder.findPackage(fqName)
|
||||||
@@ -74,7 +74,7 @@ public class LazyJavaPackageFragmentProvider(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getPackageFragment(fqName: FqName) = _packageFragments(fqName)
|
fun getPackageFragment(fqName: FqName) = packageFragments(fqName)
|
||||||
|
|
||||||
override fun getPackageFragments(fqName: FqName) = getPackageFragment(fqName)?.let {listOf(it)}.orEmpty()
|
override fun getPackageFragments(fqName: FqName) = getPackageFragment(fqName)?.let {listOf(it)}.orEmpty()
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -60,7 +60,7 @@ class LazyJavaAnnotationDescriptor(
|
|||||||
else kotlinFqNameToJavaFqName(classId.asSingleFqName())
|
else kotlinFqNameToJavaFqName(classId.asSingleFqName())
|
||||||
}
|
}
|
||||||
|
|
||||||
private val _type = c.storageManager.createLazyValue {() : JetType ->
|
private val type = c.storageManager.createLazyValue {(): JetType ->
|
||||||
val fqName = fqName()
|
val fqName = fqName()
|
||||||
if (fqName == null) return@createLazyValue ErrorUtils.createErrorType("No fqName: $javaAnnotation")
|
if (fqName == null) return@createLazyValue ErrorUtils.createErrorType("No fqName: $javaAnnotation")
|
||||||
val annotationClass = JavaToKotlinClassMap.getInstance().mapKotlinClass(fqName, TypeUsage.MEMBER_SIGNATURE_INVARIANT)
|
val annotationClass = JavaToKotlinClassMap.getInstance().mapKotlinClass(fqName, TypeUsage.MEMBER_SIGNATURE_INVARIANT)
|
||||||
@@ -68,7 +68,7 @@ class LazyJavaAnnotationDescriptor(
|
|||||||
annotationClass?.getDefaultType() ?: ErrorUtils.createErrorType(fqName.asString())
|
annotationClass?.getDefaultType() ?: ErrorUtils.createErrorType(fqName.asString())
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getType(): JetType = _type()
|
override fun getType(): JetType = type()
|
||||||
|
|
||||||
private val nameToArgument = c.storageManager.createLazyValue {
|
private val nameToArgument = c.storageManager.createLazyValue {
|
||||||
var arguments: Collection<JavaAnnotationArgument> = javaAnnotation.getArguments()
|
var arguments: Collection<JavaAnnotationArgument> = javaAnnotation.getArguments()
|
||||||
|
|||||||
+30
-30
@@ -49,70 +49,70 @@ class LazyJavaClassDescriptor(
|
|||||||
c.javaResolverCache.recordClass(jClass, this)
|
c.javaResolverCache.recordClass(jClass, this)
|
||||||
}
|
}
|
||||||
|
|
||||||
private val _kind = when {
|
private val kind = when {
|
||||||
jClass.isAnnotationType() -> ClassKind.ANNOTATION_CLASS
|
jClass.isAnnotationType() -> ClassKind.ANNOTATION_CLASS
|
||||||
jClass.isInterface() -> ClassKind.TRAIT
|
jClass.isInterface() -> ClassKind.TRAIT
|
||||||
jClass.isEnum() -> ClassKind.ENUM_CLASS
|
jClass.isEnum() -> ClassKind.ENUM_CLASS
|
||||||
else -> ClassKind.CLASS
|
else -> ClassKind.CLASS
|
||||||
}
|
}
|
||||||
|
|
||||||
private val _modality = if (jClass.isAnnotationType())
|
private val modality = if (jClass.isAnnotationType())
|
||||||
Modality.FINAL
|
Modality.FINAL
|
||||||
else Modality.convertFromFlags(jClass.isAbstract() || jClass.isInterface(), !jClass.isFinal())
|
else Modality.convertFromFlags(jClass.isAbstract() || jClass.isInterface(), !jClass.isFinal())
|
||||||
|
|
||||||
private val _visibility = jClass.getVisibility()
|
private val visibility = jClass.getVisibility()
|
||||||
private val _isInner = jClass.getOuterClass() != null && !jClass.isStatic()
|
private val isInner = jClass.getOuterClass() != null && !jClass.isStatic()
|
||||||
|
|
||||||
override fun getKind() = _kind
|
override fun getKind() = kind
|
||||||
override fun getModality() = _modality
|
override fun getModality() = modality
|
||||||
override fun getVisibility() = _visibility
|
override fun getVisibility() = visibility
|
||||||
override fun isInner() = _isInner
|
override fun isInner() = isInner
|
||||||
|
|
||||||
private val _typeConstructor = c.storageManager.createLazyValue { LazyJavaClassTypeConstructor() }
|
private val typeConstructor = c.storageManager.createLazyValue { LazyJavaClassTypeConstructor() }
|
||||||
override fun getTypeConstructor(): TypeConstructor = _typeConstructor()
|
override fun getTypeConstructor(): TypeConstructor = typeConstructor()
|
||||||
|
|
||||||
private val _scopeForMemberLookup = LazyJavaClassMemberScope(c, this, jClass)
|
private val scopeForMemberLookup = LazyJavaClassMemberScope(c, this, jClass)
|
||||||
override fun getScopeForMemberLookup() = _scopeForMemberLookup
|
override fun getScopeForMemberLookup() = scopeForMemberLookup
|
||||||
|
|
||||||
private val _innerClassesScope = InnerClassesScopeWrapper(getScopeForMemberLookup())
|
private val innerClassesScope = InnerClassesScopeWrapper(getScopeForMemberLookup())
|
||||||
override fun getUnsubstitutedInnerClassesScope(): JetScope = _innerClassesScope
|
override fun getUnsubstitutedInnerClassesScope(): JetScope = innerClassesScope
|
||||||
|
|
||||||
private val _staticScope = LazyJavaStaticClassScope(c, jClass, this)
|
private val staticScope = LazyJavaStaticClassScope(c, jClass, this)
|
||||||
override fun getStaticScope(): JetScope = _staticScope
|
override fun getStaticScope(): JetScope = staticScope
|
||||||
|
|
||||||
override fun getUnsubstitutedPrimaryConstructor(): ConstructorDescriptor? = null
|
override fun getUnsubstitutedPrimaryConstructor(): ConstructorDescriptor? = null
|
||||||
|
|
||||||
override fun getClassObjectDescriptor(): ClassDescriptor? = null
|
override fun getClassObjectDescriptor(): ClassDescriptor? = null
|
||||||
override fun getClassObjectType(): JetType? = getClassObjectDescriptor()?.let { d -> d.getDefaultType() }
|
override fun getClassObjectType(): JetType? = getClassObjectDescriptor()?.let { d -> d.getDefaultType() }
|
||||||
|
|
||||||
override fun getConstructors() = _scopeForMemberLookup.constructors()
|
override fun getConstructors() = scopeForMemberLookup.constructors()
|
||||||
|
|
||||||
private val _annotations = c.storageManager.createLazyValue { c.resolveAnnotations(jClass) }
|
private val annotations = c.storageManager.createLazyValue { c.resolveAnnotations(jClass) }
|
||||||
override fun getAnnotations() = _annotations()
|
override fun getAnnotations() = annotations()
|
||||||
|
|
||||||
private val _functionTypeForSamInterface = c.storageManager.createNullableLazyValue {
|
private val functionTypeForSamInterface = c.storageManager.createNullableLazyValue {
|
||||||
c.samConversionResolver.resolveFunctionTypeIfSamInterface(this) { method ->
|
c.samConversionResolver.resolveFunctionTypeIfSamInterface(this) { method ->
|
||||||
_scopeForMemberLookup.resolveMethodToFunctionDescriptor(method, false)
|
scopeForMemberLookup.resolveMethodToFunctionDescriptor(method, false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getFunctionTypeForSamInterface(): JetType? = _functionTypeForSamInterface()
|
override fun getFunctionTypeForSamInterface(): JetType? = functionTypeForSamInterface()
|
||||||
|
|
||||||
override fun toString() = "lazy java class $fqName"
|
override fun toString() = "lazy java class $fqName"
|
||||||
|
|
||||||
private inner class LazyJavaClassTypeConstructor : AbstractClassTypeConstructor() {
|
private inner class LazyJavaClassTypeConstructor : AbstractClassTypeConstructor() {
|
||||||
|
|
||||||
private val _parameters = c.storageManager.createLazyValue {
|
private val parameters = c.storageManager.createLazyValue {
|
||||||
jClass.getTypeParameters().map({
|
jClass.getTypeParameters().map {
|
||||||
p ->
|
p ->
|
||||||
c.typeParameterResolver.resolveTypeParameter(p)
|
c.typeParameterResolver.resolveTypeParameter(p)
|
||||||
?: throw AssertionError("Parameter $p surely belongs to class ${jClass}, so it must be resolved")
|
?: throw AssertionError("Parameter $p surely belongs to class ${jClass}, so it must be resolved")
|
||||||
})
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getParameters(): List<TypeParameterDescriptor> = _parameters()
|
override fun getParameters(): List<TypeParameterDescriptor> = parameters()
|
||||||
|
|
||||||
private val _supertypes = c.storageManager.createLazyValue<Collection<JetType>> {
|
private val supertypes = c.storageManager.createLazyValue<Collection<JetType>> {
|
||||||
jClass.getSupertypes().stream()
|
jClass.getSupertypes().stream()
|
||||||
.map {
|
.map {
|
||||||
supertype ->
|
supertype ->
|
||||||
@@ -125,7 +125,7 @@ class LazyJavaClassDescriptor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getSupertypes(): Collection<JetType> = _supertypes()
|
override fun getSupertypes(): Collection<JetType> = supertypes()
|
||||||
|
|
||||||
override fun getAnnotations() = Annotations.EMPTY
|
override fun getAnnotations() = Annotations.EMPTY
|
||||||
|
|
||||||
|
|||||||
+6
-6
@@ -47,9 +47,9 @@ import org.jetbrains.jet.lang.descriptors.annotations.Annotations
|
|||||||
|
|
||||||
public abstract class LazyJavaMemberScope(
|
public abstract class LazyJavaMemberScope(
|
||||||
protected val c: LazyJavaResolverContextWithTypes,
|
protected val c: LazyJavaResolverContextWithTypes,
|
||||||
private val _containingDeclaration: DeclarationDescriptor
|
private val containingDeclaration: DeclarationDescriptor
|
||||||
) : JetScope {
|
) : JetScope {
|
||||||
private val _allDescriptors = c.storageManager.createRecursionTolerantLazyValue<Collection<DeclarationDescriptor>>(
|
private val allDescriptors = c.storageManager.createRecursionTolerantLazyValue<Collection<DeclarationDescriptor>>(
|
||||||
{computeAllDescriptors()},
|
{computeAllDescriptors()},
|
||||||
// This is to avoid the following recursive case:
|
// This is to avoid the following recursive case:
|
||||||
// when computing getAllPackageNames() we ask the JavaPsiFacade for all subpackages of foo
|
// when computing getAllPackageNames() we ask the JavaPsiFacade for all subpackages of foo
|
||||||
@@ -58,7 +58,7 @@ public abstract class LazyJavaMemberScope(
|
|||||||
listOf()
|
listOf()
|
||||||
)
|
)
|
||||||
|
|
||||||
override fun getContainingDeclaration() = _containingDeclaration
|
override fun getContainingDeclaration() = containingDeclaration
|
||||||
|
|
||||||
protected val memberIndex: NotNullLazyValue<MemberIndex> = c.storageManager.createLazyValue {
|
protected val memberIndex: NotNullLazyValue<MemberIndex> = c.storageManager.createLazyValue {
|
||||||
computeMemberIndex()
|
computeMemberIndex()
|
||||||
@@ -105,7 +105,7 @@ public abstract class LazyJavaMemberScope(
|
|||||||
|
|
||||||
val annotations = c.resolveAnnotations(method)
|
val annotations = c.resolveAnnotations(method)
|
||||||
val functionDescriptorImpl = JavaMethodDescriptor.createJavaMethod(
|
val functionDescriptorImpl = JavaMethodDescriptor.createJavaMethod(
|
||||||
_containingDeclaration, annotations, method.getName(), c.sourceElementFactory.source(method)
|
containingDeclaration, annotations, method.getName(), c.sourceElementFactory.source(method)
|
||||||
)
|
)
|
||||||
|
|
||||||
val c = c.child(functionDescriptorImpl, method.getTypeParameters().toSet())
|
val c = c.child(functionDescriptorImpl, method.getTypeParameters().toSet())
|
||||||
@@ -255,7 +255,7 @@ public abstract class LazyJavaMemberScope(
|
|||||||
val annotations = c.resolveAnnotations(field)
|
val annotations = c.resolveAnnotations(field)
|
||||||
val propertyName = field.getName()
|
val propertyName = field.getName()
|
||||||
|
|
||||||
return JavaPropertyDescriptor(_containingDeclaration, annotations, visibility, isVar, propertyName,
|
return JavaPropertyDescriptor(containingDeclaration, annotations, visibility, isVar, propertyName,
|
||||||
c.sourceElementFactory.source(field))
|
c.sourceElementFactory.source(field))
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -283,7 +283,7 @@ public abstract class LazyJavaMemberScope(
|
|||||||
override fun getDeclarationsByLabel(labelName: Name) = listOf<DeclarationDescriptor>()
|
override fun getDeclarationsByLabel(labelName: Name) = listOf<DeclarationDescriptor>()
|
||||||
|
|
||||||
override fun getOwnDeclaredDescriptors() = getAllDescriptors()
|
override fun getOwnDeclaredDescriptors() = getAllDescriptors()
|
||||||
override fun getAllDescriptors() = _allDescriptors()
|
override fun getAllDescriptors() = allDescriptors()
|
||||||
|
|
||||||
private fun computeAllDescriptors(): List<DeclarationDescriptor> {
|
private fun computeAllDescriptors(): List<DeclarationDescriptor> {
|
||||||
val result = LinkedHashSet<DeclarationDescriptor>()
|
val result = LinkedHashSet<DeclarationDescriptor>()
|
||||||
|
|||||||
+2
-2
@@ -25,9 +25,9 @@ class LazyJavaPackageFragment(
|
|||||||
private val c: LazyJavaResolverContext,
|
private val c: LazyJavaResolverContext,
|
||||||
private val jPackage: JavaPackage
|
private val jPackage: JavaPackage
|
||||||
) : PackageFragmentDescriptorImpl(c.packageFragmentProvider.module, jPackage.getFqName()) {
|
) : PackageFragmentDescriptorImpl(c.packageFragmentProvider.module, jPackage.getFqName()) {
|
||||||
private val _memberScope by Delegates.lazy { LazyPackageFragmentScopeForJavaPackage(c, jPackage, this) }
|
private val scope by Delegates.lazy { LazyPackageFragmentScopeForJavaPackage(c, jPackage, this) }
|
||||||
|
|
||||||
override fun getMemberScope() = _memberScope
|
override fun getMemberScope() = scope
|
||||||
|
|
||||||
override fun toString() = "lazy java package fragment: $fqName"
|
override fun toString() = "lazy java package fragment: $fqName"
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -116,7 +116,7 @@ public class LazyPackageFragmentScopeForJavaPackage(
|
|||||||
.map { c -> c.getName() }.toList()
|
.map { c -> c.getName() }.toList()
|
||||||
}
|
}
|
||||||
|
|
||||||
private val _subPackages = c.storageManager.createRecursionTolerantLazyValue(
|
private val subPackages = c.storageManager.createRecursionTolerantLazyValue(
|
||||||
{
|
{
|
||||||
jPackage.getSubPackages().map { sp -> sp.getFqName() }
|
jPackage.getSubPackages().map { sp -> sp.getFqName() }
|
||||||
},
|
},
|
||||||
@@ -128,7 +128,7 @@ public class LazyPackageFragmentScopeForJavaPackage(
|
|||||||
result.addIfNotNull(c.samConversionResolver.resolveSamConstructor(name, this))
|
result.addIfNotNull(c.samConversionResolver.resolveSamConstructor(name, this))
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getSubPackages() = _subPackages()
|
override fun getSubPackages() = subPackages()
|
||||||
|
|
||||||
override fun getAllPropertyNames() = Collections.emptyList<Name>()
|
override fun getAllPropertyNames() = Collections.emptyList<Name>()
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-5
@@ -35,7 +35,6 @@ import org.jetbrains.jet.lang.resolve.java.PLATFORM_TYPES
|
|||||||
import org.jetbrains.jet.lang.resolve.java.lazy.types.JavaTypeFlexibility.*
|
import org.jetbrains.jet.lang.resolve.java.lazy.types.JavaTypeFlexibility.*
|
||||||
import org.jetbrains.jet.lang.descriptors.annotations.Annotations
|
import org.jetbrains.jet.lang.descriptors.annotations.Annotations
|
||||||
import org.jetbrains.jet.lang.resolve.java.JvmAnnotationNames
|
import org.jetbrains.jet.lang.resolve.java.JvmAnnotationNames
|
||||||
import org.jetbrains.jet.lang.resolve.name.FqName
|
|
||||||
import kotlin.platform.platformStatic
|
import kotlin.platform.platformStatic
|
||||||
|
|
||||||
class LazyJavaTypeResolver(
|
class LazyJavaTypeResolver(
|
||||||
@@ -248,11 +247,11 @@ class LazyJavaTypeResolver(
|
|||||||
return (descriptor as ClassDescriptor).getMemberScope(getArguments())
|
return (descriptor as ClassDescriptor).getMemberScope(getArguments())
|
||||||
}
|
}
|
||||||
|
|
||||||
private val _nullable = c.storageManager.createLazyValue @nullable{
|
private val nullable = c.storageManager.createLazyValue @l {
|
||||||
(): Boolean ->
|
(): Boolean ->
|
||||||
when (attr.flexibility) {
|
when (attr.flexibility) {
|
||||||
FLEXIBLE_LOWER_BOUND -> return@nullable false
|
FLEXIBLE_LOWER_BOUND -> return@l false
|
||||||
FLEXIBLE_UPPER_BOUND -> return@nullable true
|
FLEXIBLE_UPPER_BOUND -> return@l true
|
||||||
}
|
}
|
||||||
!attr.isMarkedNotNull &&
|
!attr.isMarkedNotNull &&
|
||||||
// 'L extends List<T>' in Java is a List<T> in Kotlin, not a List<T?>
|
// 'L extends List<T>' in Java is a List<T> in Kotlin, not a List<T?>
|
||||||
@@ -269,7 +268,8 @@ class LazyJavaTypeResolver(
|
|||||||
else -> error("Unknown classifier: ${classifier()}")
|
else -> error("Unknown classifier: ${classifier()}")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
override fun isNullable(): Boolean = _nullable()
|
|
||||||
|
override fun isNullable(): Boolean = nullable()
|
||||||
|
|
||||||
override fun getAnnotations() = attr.annotations
|
override fun getAnnotations() = attr.annotations
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,18 +22,18 @@ import org.jetbrains.jet.lang.descriptors.annotations.Annotations
|
|||||||
|
|
||||||
public abstract class AbstractLazyType(storageManager: StorageManager) : AbstractJetType(), LazyType {
|
public abstract class AbstractLazyType(storageManager: StorageManager) : AbstractJetType(), LazyType {
|
||||||
|
|
||||||
private val _typeConstructor = storageManager.createLazyValue {computeTypeConstructor()}
|
private val typeConstructor = storageManager.createLazyValue { computeTypeConstructor() }
|
||||||
override fun getConstructor(): TypeConstructor = _typeConstructor()
|
override fun getConstructor(): TypeConstructor = typeConstructor()
|
||||||
|
|
||||||
protected abstract fun computeTypeConstructor(): TypeConstructor
|
protected abstract fun computeTypeConstructor(): TypeConstructor
|
||||||
|
|
||||||
private val _arguments = storageManager.createLazyValue {computeArguments()}
|
private val arguments = storageManager.createLazyValue { computeArguments() }
|
||||||
override fun getArguments(): List<TypeProjection> = _arguments()
|
override fun getArguments(): List<TypeProjection> = arguments()
|
||||||
|
|
||||||
protected abstract fun computeArguments(): List<TypeProjection>
|
protected abstract fun computeArguments(): List<TypeProjection>
|
||||||
|
|
||||||
private val _memberScope = storageManager.createLazyValue {computeMemberScope()}
|
private val memberScope = storageManager.createLazyValue { computeMemberScope() }
|
||||||
override fun getMemberScope() = _memberScope()
|
override fun getMemberScope() = memberScope()
|
||||||
|
|
||||||
protected abstract fun computeMemberScope(): JetScope
|
protected abstract fun computeMemberScope(): JetScope
|
||||||
|
|
||||||
@@ -44,10 +44,10 @@ public abstract class AbstractLazyType(storageManager: StorageManager) : Abstrac
|
|||||||
override fun getAnnotations() = Annotations.EMPTY
|
override fun getAnnotations() = Annotations.EMPTY
|
||||||
|
|
||||||
override fun toString(): String {
|
override fun toString(): String {
|
||||||
if (!_typeConstructor.isComputed()) {
|
if (!typeConstructor.isComputed()) {
|
||||||
return "Type constructor is not computed"
|
return "Type constructor is not computed"
|
||||||
}
|
}
|
||||||
if (!_arguments.isComputed()) {
|
if (!arguments.isComputed()) {
|
||||||
return "" + getConstructor() + "<arguments are not computed>"
|
return "" + getConstructor() + "<arguments are not computed>"
|
||||||
}
|
}
|
||||||
return super<AbstractJetType>.toString()
|
return super<AbstractJetType>.toString()
|
||||||
|
|||||||
@@ -26,35 +26,35 @@ import com.intellij.formatting.Spacing
|
|||||||
import com.intellij.lang.ASTNode
|
import com.intellij.lang.ASTNode
|
||||||
import com.intellij.psi.formatter.common.AbstractBlock
|
import com.intellij.psi.formatter.common.AbstractBlock
|
||||||
import com.intellij.formatting.ASTBlock
|
import com.intellij.formatting.ASTBlock
|
||||||
import java.util.ArrayList
|
|
||||||
|
|
||||||
public class SyntheticKotlinBlock(
|
public class SyntheticKotlinBlock(
|
||||||
private val _node: ASTNode,
|
private val node: ASTNode,
|
||||||
private val _subBlocks: MutableList<Block>,
|
private val subBlocks: MutableList<Block>,
|
||||||
private val _alignment: Alignment?,
|
private val alignment: Alignment?,
|
||||||
private val _indent: Indent?,
|
private val indent: Indent?,
|
||||||
private val _wrap: Wrap?,
|
private val wrap: Wrap?,
|
||||||
private val spacingBuilder: KotlinSpacingBuilder) : ASTBlock {
|
private val spacingBuilder: KotlinSpacingBuilder
|
||||||
|
) : ASTBlock {
|
||||||
|
|
||||||
private val _textRange = TextRange(
|
private val textRange = TextRange(
|
||||||
_subBlocks.first().getTextRange().getStartOffset(),
|
subBlocks.first().getTextRange().getStartOffset(),
|
||||||
_subBlocks.last().getTextRange().getEndOffset())
|
subBlocks.last().getTextRange().getEndOffset())
|
||||||
|
|
||||||
override fun getTextRange(): TextRange = _textRange
|
override fun getTextRange(): TextRange = textRange
|
||||||
override fun getSubBlocks() = _subBlocks
|
override fun getSubBlocks() = subBlocks
|
||||||
override fun getWrap() = _wrap
|
override fun getWrap() = wrap
|
||||||
override fun getIndent() = _indent
|
override fun getIndent() = indent
|
||||||
override fun getAlignment() = _alignment
|
override fun getAlignment() = alignment
|
||||||
override fun getChildAttributes(newChildIndex: Int) = ChildAttributes(getIndent(), null)
|
override fun getChildAttributes(newChildIndex: Int) = ChildAttributes(getIndent(), null)
|
||||||
override fun isIncomplete() = getSubBlocks().last().isIncomplete()
|
override fun isIncomplete() = getSubBlocks().last().isIncomplete()
|
||||||
override fun isLeaf() = false
|
override fun isLeaf() = false
|
||||||
override fun getNode() = _node
|
override fun getNode() = node
|
||||||
override fun getSpacing(child1: Block?, child2: Block): Spacing? =
|
override fun getSpacing(child1: Block?, child2: Block): Spacing? =
|
||||||
spacingBuilder.getSpacing(KotlinSpacingBuilder.SpacingNodeBlock(_node.getTreeParent()!!), child1, child2)
|
spacingBuilder.getSpacing(KotlinSpacingBuilder.SpacingNodeBlock(node.getTreeParent()!!), child1, child2)
|
||||||
|
|
||||||
|
|
||||||
override fun toString(): String {
|
override fun toString(): String {
|
||||||
var child = _subBlocks.first()
|
var child = subBlocks.first()
|
||||||
var treeNode: ASTNode? = null
|
var treeNode: ASTNode? = null
|
||||||
while (treeNode == null) when (child) {
|
while (treeNode == null) when (child) {
|
||||||
is AbstractBlock -> {
|
is AbstractBlock -> {
|
||||||
|
|||||||
Reference in New Issue
Block a user