From 26f72d093544937aba41e8ca6e853491a0ef03d3 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Mon, 6 Jul 2015 13:47:51 +0300 Subject: [PATCH] MInor corrections after code review --- .../jetbrains/kotlin/j2k/ConstructorConverter.kt | 4 ++-- j2k/src/org/jetbrains/kotlin/j2k/Converter.kt | 14 +++++++------- .../jetbrains/kotlin/j2k/ExpressionConverter.kt | 5 ++--- j2k/src/org/jetbrains/kotlin/j2k/ast/Element.kt | 7 ++++++- 4 files changed, 17 insertions(+), 13 deletions(-) diff --git a/j2k/src/org/jetbrains/kotlin/j2k/ConstructorConverter.kt b/j2k/src/org/jetbrains/kotlin/j2k/ConstructorConverter.kt index e71df65d718..8f562fa3213 100644 --- a/j2k/src/org/jetbrains/kotlin/j2k/ConstructorConverter.kt +++ b/j2k/src/org/jetbrains/kotlin/j2k/ConstructorConverter.kt @@ -216,8 +216,8 @@ class ConstructorConverter( accessModifiers, default) .assignPrototypes( - PrototypeInfo(parameter, CommentsAndSpacesInheritance(spacesBefore = SpacesInheritance.LINE_BREAKS)), - PrototypeInfo(field, CommentsAndSpacesInheritance(spacesBefore = SpacesInheritance.NONE)) + PrototypeInfo(parameter, CommentsAndSpacesInheritance.LINE_BREAKS), + PrototypeInfo(field, CommentsAndSpacesInheritance.NO_SPACES) ) } }, diff --git a/j2k/src/org/jetbrains/kotlin/j2k/Converter.kt b/j2k/src/org/jetbrains/kotlin/j2k/Converter.kt index 34c3cec106f..5b3a131f422 100644 --- a/j2k/src/org/jetbrains/kotlin/j2k/Converter.kt +++ b/j2k/src/org/jetbrains/kotlin/j2k/Converter.kt @@ -244,19 +244,18 @@ class Converter private constructor( private fun convertAnnotationType(psiClass: PsiClass): Class { val paramModifiers = Modifiers(listOf(Modifier.PUBLIC)).assignNoPrototype() - val noBlankLinesInheritance = CommentsAndSpacesInheritance(spacesBefore = SpacesInheritance.NONE) val annotationMethods = psiClass.getMethods().filterIsInstance() val (methodsNamedValue, otherMethods) = annotationMethods.partition { it.getName() == "value" } fun createParameter(type: Type, method: PsiAnnotationMethod): Parameter { - type.assignPrototype(method.getReturnTypeElement(), noBlankLinesInheritance) + type.assignPrototype(method.getReturnTypeElement(), CommentsAndSpacesInheritance.NO_SPACES) return Parameter(method.declarationIdentifier(), type, Parameter.VarValModifier.Val, convertAnnotations(method), paramModifiers, - annotationConverter.convertAnnotationMethodDefault(method)).assignPrototype(method, noBlankLinesInheritance) + annotationConverter.convertAnnotationMethodDefault(method)).assignPrototype(method, CommentsAndSpacesInheritance.NO_SPACES) } fun convertType(psiType: PsiType?): Type { @@ -320,7 +319,7 @@ class Converter private constructor( } val body = field.getInitializingClass()?.let { convertAnonymousClassBody(it) } return EnumConstant(name, annotations, modifiers, params, body) - .assignPrototype(field, CommentsAndSpacesInheritance(spacesBefore = SpacesInheritance.LINE_BREAKS)) + .assignPrototype(field, CommentsAndSpacesInheritance.LINE_BREAKS) } else { val isVal = isVal(referenceSearcher, field) @@ -339,7 +338,8 @@ class Converter private constructor( isVal, typeToDeclare != null, shouldGenerateDefaultInitializer(referenceSearcher, field), - if (correction != null) correction.setterAccess else modifiers.accessModifier()).assignPrototype(field) + if (correction != null) correction.setterAccess else modifiers.accessModifier() + ).assignPrototype(field) } } @@ -545,7 +545,7 @@ class Converter private constructor( Nullability.Nullable -> type = type.toNullableType() } return Parameter(parameter.declarationIdentifier(), type, varValModifier, - convertAnnotations(parameter), modifiers, defaultValue).assignPrototype(parameter, CommentsAndSpacesInheritance(spacesBefore = SpacesInheritance.LINE_BREAKS)) + convertAnnotations(parameter), modifiers, defaultValue).assignPrototype(parameter, CommentsAndSpacesInheritance.LINE_BREAKS) } public fun convertIdentifier(identifier: PsiIdentifier?): Identifier { @@ -556,7 +556,7 @@ class Converter private constructor( public fun convertModifiers(owner: PsiModifierListOwner): Modifiers { return Modifiers(MODIFIERS_MAP.filter { owner.hasModifierProperty(it.first) }.map { it.second }) - .assignPrototype(owner.getModifierList(), CommentsAndSpacesInheritance(spacesBefore = SpacesInheritance.NONE)) + .assignPrototype(owner.getModifierList(), CommentsAndSpacesInheritance.NO_SPACES) } public fun convertAnonymousClassBody(anonymousClass: PsiAnonymousClass): AnonymousClassBody { diff --git a/j2k/src/org/jetbrains/kotlin/j2k/ExpressionConverter.kt b/j2k/src/org/jetbrains/kotlin/j2k/ExpressionConverter.kt index 46b4ad0cdb1..3f647481442 100644 --- a/j2k/src/org/jetbrains/kotlin/j2k/ExpressionConverter.kt +++ b/j2k/src/org/jetbrains/kotlin/j2k/ExpressionConverter.kt @@ -485,11 +485,10 @@ class DefaultExpressionConverter : JavaElementVisitor(), ExpressionConverter { val parameters = resolved?.getParameterList()?.getParameters() val expectedTypes = parameters?.map { it.getType() } ?: listOf() - val commentsAndSpacesInheritance = CommentsAndSpacesInheritance(spacesBefore = SpacesInheritance.LINE_BREAKS) + val commentsAndSpacesInheritance = CommentsAndSpacesInheritance.LINE_BREAKS return if (arguments.size() == expectedTypes.size()) { - arguments.indices.map { i -> - val argument = arguments[i] + arguments.mapIndexed { i, argument -> val converted = codeConverter.convertExpression(argument, expectedTypes[i]) val result = if (parameters != null && i == arguments.lastIndex && parameters[i].isVarArgs() && argument.getType() is PsiArrayType) StarExpression(converted) diff --git a/j2k/src/org/jetbrains/kotlin/j2k/ast/Element.kt b/j2k/src/org/jetbrains/kotlin/j2k/ast/Element.kt index bda0d3eb029..818228c8bfb 100644 --- a/j2k/src/org/jetbrains/kotlin/j2k/ast/Element.kt +++ b/j2k/src/org/jetbrains/kotlin/j2k/ast/Element.kt @@ -54,7 +54,12 @@ data class CommentsAndSpacesInheritance( val commentsBefore: Boolean = true, val commentsAfter: Boolean = true, val commentsInside: Boolean = true -) +) { + companion object { + val NO_SPACES = CommentsAndSpacesInheritance(spacesBefore = SpacesInheritance.NONE) + val LINE_BREAKS = CommentsAndSpacesInheritance(spacesBefore = SpacesInheritance.LINE_BREAKS) + } +} fun Element.canonicalCode(): String { val builder = CodeBuilder(null)