diff --git a/src/main/java/com/puppycrawl/tools/checkstyle/checks/coding/OverloadMethodsDeclarationOrderCheck.java b/src/main/java/com/puppycrawl/tools/checkstyle/checks/coding/OverloadMethodsDeclarationOrderCheck.java index 8ea37af8b1f..8fc95c85513 100644 --- a/src/main/java/com/puppycrawl/tools/checkstyle/checks/coding/OverloadMethodsDeclarationOrderCheck.java +++ b/src/main/java/com/puppycrawl/tools/checkstyle/checks/coding/OverloadMethodsDeclarationOrderCheck.java @@ -110,7 +110,11 @@ private void checkOverloadMethodsGrouping(DetailAST objectBlock) { final String methodName = currentToken.findFirstToken(TokenTypes.IDENT).getText(); final Integer previousIndex = methodIndexMap.get(methodName); - if (previousIndex != null && currentIndex - previousIndex > allowedDistance) { + final DetailAST previousSibling = currentToken.getPreviousSibling(); + final boolean isMethod = previousSibling.getType() == TokenTypes.METHOD_DEF; + + if (previousIndex != null + && (!isMethod || currentIndex - previousIndex > allowedDistance)) { final int previousLineWithOverloadMethod = methodLineNumberMap.get(methodName); log(currentToken, MSG_KEY, diff --git a/src/main/resources/com/puppycrawl/tools/checkstyle/checks/coding/messages.properties b/src/main/resources/com/puppycrawl/tools/checkstyle/checks/coding/messages.properties index 31019fcee70..90386f8a7b1 100644 --- a/src/main/resources/com/puppycrawl/tools/checkstyle/checks/coding/messages.properties +++ b/src/main/resources/com/puppycrawl/tools/checkstyle/checks/coding/messages.properties @@ -44,7 +44,7 @@ nested.if.depth=Nested if-else depth is {0,number,integer} (max allowed is {1,nu nested.try.depth=Nested try depth is {0,number,integer} (max allowed is {1,number,integer}). no.array.trailing.comma=Array should not contain trailing comma. no.enum.trailing.comma=Enum should not contain trailing comma. -overload.methods.declaration=All overloaded methods should be placed next to each other. Placing non-overloaded methods in between overloaded methods with the same type is a violation. Previous overloaded method located at line ''{0}''. +overload.methods.declaration=All overloaded methods should be placed next to each other. Previous overloaded method located at line ''{0}''. parameter.assignment=Assignment of parameter ''{0}'' is not allowed. require.this.method=Method call to ''{0}'' needs \"{1}this.\". require.this.variable=Reference to instance variable ''{0}'' needs \"{1}this.\". diff --git a/src/main/resources/com/puppycrawl/tools/checkstyle/checks/coding/messages_es.properties b/src/main/resources/com/puppycrawl/tools/checkstyle/checks/coding/messages_es.properties index c9bcff58460..74e04191265 100644 --- a/src/main/resources/com/puppycrawl/tools/checkstyle/checks/coding/messages_es.properties +++ b/src/main/resources/com/puppycrawl/tools/checkstyle/checks/coding/messages_es.properties @@ -44,7 +44,7 @@ nested.if.depth=La profundidad de if-else anidados es {0,number,integer} (máxim nested.try.depth=La profundidad de try anidados es {0,number,integer} (máximo permitido es {1,number,integer}). no.array.trailing.comma=La matriz no debe contener una coma final. no.enum.trailing.comma=Enum no debe contener una coma final. -overload.methods.declaration=Todos los métodos sobrecargados deben colocarse uno al lado del otro. Colocar métodos no sobrecargados entre métodos sobrecargados con el mismo tipo es una violación. Método sobrecargado anterior ubicado en la línea ''{0} ''. +overload.methods.declaration=Todos los métodos sobrecargados deben colocarse uno al lado del otro. Método sobrecargado anterior ubicado en la línea ''{0}''. parameter.assignment=No esta permitida la asignación del parámetro ''{0}''. require.this.method=La llamada al método ''{0}'' necesita "{1}this.". require.this.variable=La referencia a la variable de instancia ''{0}'' necesita "{1}this.". diff --git a/src/main/resources/com/puppycrawl/tools/checkstyle/checks/coding/messages_fi.properties b/src/main/resources/com/puppycrawl/tools/checkstyle/checks/coding/messages_fi.properties index 8011d41b235..b76df41b25e 100644 --- a/src/main/resources/com/puppycrawl/tools/checkstyle/checks/coding/messages_fi.properties +++ b/src/main/resources/com/puppycrawl/tools/checkstyle/checks/coding/messages_fi.properties @@ -44,7 +44,7 @@ nested.if.depth=Sisäkkäisten if-else -lausekkeiden syvyys on {0,number,integer nested.try.depth=Sisäkkäisten try -lausekkeiden syvyys on {0,number,integer} (suurin sallittu on {1,number,integer}). no.array.trailing.comma=Matriisissa ei tulisi olla takaosan pilkkua. no.enum.trailing.comma=Enum ei saisi sisältää takaosan pilkkua. -overload.methods.declaration=Kaikki ylikuormitetut menetelmät tulisi asettaa vierekkäin. Ei-ylikuormitettujen menetelmien sijoittaminen samantyyppisiin ylikuormitettuihin menetelmiin on rikkomus. Aikaisempi ylikuormitettu menetelmä sijaitsee rivillä '' {0} ''. +overload.methods.declaration=Kaikki ylikuormitetut menetelmät tulee sijoittaa vierekkäin. Edellinen ylikuormitettu menetelmä sijaitsee rivillä ''{0}''. parameter.assignment=Tehtävä parametrin ''{0}'' ei ole sallittu. require.this.method=Menetelmä kehotus ''{0}'' tarvitsee "{1}this.". require.this.variable=Viittaus Esimerkiksi muuttuja ''{0}'' tarvitsee "{1}this.". diff --git a/src/main/resources/com/puppycrawl/tools/checkstyle/checks/coding/messages_fr.properties b/src/main/resources/com/puppycrawl/tools/checkstyle/checks/coding/messages_fr.properties index 30ea96c8b53..68169b99999 100644 --- a/src/main/resources/com/puppycrawl/tools/checkstyle/checks/coding/messages_fr.properties +++ b/src/main/resources/com/puppycrawl/tools/checkstyle/checks/coding/messages_fr.properties @@ -44,7 +44,7 @@ nested.if.depth=Le nombre de ''if'' imbriqués est de {0,number,integer}, alors nested.try.depth=Le nombre de ''try'' imbriqués est de {0,number,integer}, alors que le maximum autorisé est de {1,number,integer}. no.array.trailing.comma=Le tableau ne doit pas contenir de virgule. no.enum.trailing.comma=Enum ne doit pas contenir de virgule. -overload.methods.declaration=Toutes les méthodes surchargées doivent être placées côte à côte. Placer des méthodes non surchargées entre des méthodes surchargées avec le même type est une violation. La méthode surchargée précédente se trouve à la ligne '' {0} ''. +overload.methods.declaration=Toutes les méthodes surchargées doivent être placées les unes à côté des autres. Méthode surchargée précédente située à la ligne ''{0}''. parameter.assignment=Il est interdit d''affecter une valeur au paramètre ''{0}''. require.this.method=L''appel à la méthode ''{0}'' nécessite l''utilisation de "{1}this.". require.this.variable=La référence à la variable d''instance ''{0}'' doit utiliser "{1}this.". diff --git a/src/main/resources/com/puppycrawl/tools/checkstyle/checks/coding/messages_ja.properties b/src/main/resources/com/puppycrawl/tools/checkstyle/checks/coding/messages_ja.properties index 9e9254045e6..5e51efee611 100644 --- a/src/main/resources/com/puppycrawl/tools/checkstyle/checks/coding/messages_ja.properties +++ b/src/main/resources/com/puppycrawl/tools/checkstyle/checks/coding/messages_ja.properties @@ -44,7 +44,7 @@ nested.if.depth=ネストした if-else の深さが {0,number,integer} (最 nested.try.depth=ネストした try の深さが {0,number,integer} (最大 {1,number,integer} まで)です。 no.array.trailing.comma=配列には末尾のコンマを含めないでください。 no.enum.trailing.comma=列挙には末尾のコンマを含めないでください。 -overload.methods.declaration=すべてのオーバーロードされたメソッドは、互いに隣接して配置する必要があります。 同じタイプのオーバーロードされたメソッドの間に非オーバーロードされたメソッドを配置することは違反です。 最後のオーバーロードされたメソッドは、行 '' {0} ''にあります。 +overload.methods.declaration=すべてのオーバーロードされたメソッドは隣り合って配置する必要があります。以前のオーバーロードされたメソッドは行 ''{0}'' にあります。 parameter.assignment=パラメータ ''{0}'' への代入は許可されていません。 require.this.method=メソッド ''{0}'' への呼び出しは、 "{1}this." が必要です。 require.this.variable=インスタンス変数 ''{0}'' への参照には "{1}this." が必要です。 diff --git a/src/main/resources/com/puppycrawl/tools/checkstyle/checks/coding/messages_pt.properties b/src/main/resources/com/puppycrawl/tools/checkstyle/checks/coding/messages_pt.properties index 6f8b2df64ce..d8fcbb88713 100644 --- a/src/main/resources/com/puppycrawl/tools/checkstyle/checks/coding/messages_pt.properties +++ b/src/main/resources/com/puppycrawl/tools/checkstyle/checks/coding/messages_pt.properties @@ -1,67 +1,67 @@ array.trailing.comma=O array deveria ter uma virgula final. -assignment.inner.avoid=Atribuições aninhadas devem ser evitadas. -avoid.clone.method=Evite o uso do método ''clone()''. -avoid.double.brace.init=Evite a inicialização entre chaves. -avoid.finalizer.method=Evite o uso do método ''finalize()''. +assignment.inner.avoid=Atribui\u00C3\u00A7\u00C3\u00B5es aninhadas devem ser evitadas. +avoid.clone.method=Evite o uso do m\u00C3\u00A9todo ''clone()''. +avoid.double.brace.init=Evite a inicializa\u00C3\u00A7\u00C3\u00A3o entre chaves. +avoid.finalizer.method=Evite o uso do m\u00C3\u00A9todo ''finalize()''. covariant.equals="equals" covariante sem sobrescrever ''equals(java.lang.Object)''. -declaration.order.access=Definição de acesso a variável em ordem errada. -declaration.order.constructor=Definição de construtor em ordem errada. -declaration.order.instance=Definição de variável de instância em ordem errada. -declaration.order.static=Definição de variável estática em ordem errada. -default.comes.last=O "default" deve ser a última entrada no "switch". -default.comes.last.in.casegroup=O "default" deve ser a última entrada no grupo de "case"s. -empty.statement=Instrução vazia. -equals.avoid.null=Literais de String deveriam estar no lado esquerdo de comparações feitas com "equals". -equals.noEquals=O método ''hashCode()'' deveria ser acompanhado de um método ''equals(Object)''. -equals.noHashCode=O método ''equals(Object)'' deveria ser acompanhado de um método ''hashCode()''. -equalsIgnoreCase.avoid.null=Literais de String deveriam estar no lado esquerdo de comparações feitas com equalsIgnoreCase. -explicit.init=A variável ''{0}'' foi inicializada explicitamente com ''{1}'' (valor padrão para o seu tipo). -fall.through=Continuação (fallthrough) vindo da ramificação anterior da instrução switch. -fall.through.last=Continuação (fallthrough) para além da último ramificação da instrução switch. -final.variable=A variável ''{0}'' deveria ser declarada final. +declaration.order.access=Defini\u00C3\u00A7\u00C3\u00A3o de acesso a vari\u00C3\u00A1vel em ordem errada. +declaration.order.constructor=Defini\u00C3\u00A7\u00C3\u00A3o de construtor em ordem errada. +declaration.order.instance=Defini\u00C3\u00A7\u00C3\u00A3o de vari\u00C3\u00A1vel de inst\u00C3\u00A2ncia em ordem errada. +declaration.order.static=Defini\u00C3\u00A7\u00C3\u00A3o de vari\u00C3\u00A1vel est\u00C3\u00A1tica em ordem errada. +default.comes.last=O "default" deve ser a \u00C3\u00BAltima entrada no "switch". +default.comes.last.in.casegroup=O "default" deve ser a \u00C3\u00BAltima entrada no grupo de "case"s. +empty.statement=Instru\u00C3\u00A7\u00C3\u00A3o vazia. +equals.avoid.null=Literais de String deveriam estar no lado esquerdo de compara\u00C3\u00A7\u00C3\u00B5es feitas com "equals". +equals.noEquals=O m\u00C3\u00A9todo ''hashCode()'' deveria ser acompanhado de um m\u00C3\u00A9todo ''equals(Object)''. +equals.noHashCode=O m\u00C3\u00A9todo ''equals(Object)'' deveria ser acompanhado de um m\u00C3\u00A9todo ''hashCode()''. +equalsIgnoreCase.avoid.null=Literais de String deveriam estar no lado esquerdo de compara\u00C3\u00A7\u00C3\u00B5es feitas com equalsIgnoreCase. +explicit.init=A vari\u00C3\u00A1vel ''{0}'' foi inicializada explicitamente com ''{1}'' (valor padr\u00C3\u00A3o para o seu tipo). +fall.through=Continua\u00C3\u00A7\u00C3\u00A3o (fallthrough) vindo da ramifica\u00C3\u00A7\u00C3\u00A3o anterior da instru\u00C3\u00A7\u00C3\u00A3o switch. +fall.through.last=Continua\u00C3\u00A7\u00C3\u00A3o (fallthrough) para al\u00C3\u00A9m da \u00C3\u00BAltimo ramifica\u00C3\u00A7\u00C3\u00A3o da instru\u00C3\u00A7\u00C3\u00A3o switch. +final.variable=A vari\u00C3\u00A1vel ''{0}'' deveria ser declarada final. hidden.field=''{0}'' esconde um campo. -illegal.catch=Capturar ''{0}'' não é permitido. -illegal.throw=Lançar ''{0}'' não é permitido. -illegal.token=Não é permitida a utilização de ''{0}''. -illegal.token.text=Elemento de texto coincide com o padrão ilegal ''{0}''. -illegal.type=O uso do tipo ''{0}'' não é permitido. +illegal.catch=Capturar ''{0}'' n\u00C3\u00A3o \u00C3\u00A9 permitido. +illegal.throw=Lan\u00C3\u00A7ar ''{0}'' n\u00C3\u00A3o \u00C3\u00A9 permitido. +illegal.token=N\u00C3\u00A3o \u00C3\u00A9 permitida a utiliza\u00C3\u00A7\u00C3\u00A3o de ''{0}''. +illegal.token.text=Elemento de texto coincide com o padr\u00C3\u00A3o ilegal ''{0}''. +illegal.type=O uso do tipo ''{0}'' n\u00C3\u00A3o \u00C3\u00A9 permitido. inline.conditional.avoid=Evite condicionais inline. -instantiation.avoid=A instanciação de {0} deve ser evitada. -magic.number=''{0}'' é um número mágico. -matchxpath.match=Estrutura de código ilegal detectada. -mismatch.package.directory=O nome do pacote não é o mesmo que o do diretório. +instantiation.avoid=A instancia\u00C3\u00A7\u00C3\u00A3o de {0} deve ser evitada. +magic.number=''{0}'' \u00C3\u00A9 um n\u00C3\u00BAmero m\u00C3\u00A1gico. +matchxpath.match=Estrutura de c\u00C3\u00B3digo ilegal detectada. +mismatch.package.directory=O nome do pacote n\u00C3\u00A3o \u00C3\u00A9 o mesmo que o do diret\u00C3\u00B3rio. missing.ctor=A classe deve definir um construtor. -missing.package.declaration=Falta a declaração de pacote. -missing.super.call=O método ''{0}'' deveria invocar ''super.{0}''. -missing.switch.default="switch" sem a ramificação "default". -modified.control.variable=Variável de controle ''{0}'' é modificada. -multiple.statements.line=Apenas uma instrução por linha é permitida. +missing.package.declaration=Falta a declara\u00C3\u00A7\u00C3\u00A3o de pacote. +missing.super.call=O m\u00C3\u00A9todo ''{0}'' deveria invocar ''super.{0}''. +missing.switch.default="switch" sem a ramifica\u00C3\u00A7\u00C3\u00A3o "default". +modified.control.variable=Vari\u00C3\u00A1vel de controle ''{0}'' \u00C3\u00A9 modificada. +multiple.statements.line=Apenas uma instru\u00C3\u00A7\u00C3\u00A3o por linha \u00C3\u00A9 permitida. multiple.string.literal=A String {0} aparece {1} vezes no arquivo. -multiple.variable.declarations=Apenas uma definição de variável por linha é permitida. -multiple.variable.declarations.comma=Cada declaração de variável deve estar em sua própria instrução. -nested.for.depth=A profundidade de aninhamento do "for" é {0, number, integer} (o máximo permitido é {1,number,integer}). -nested.if.depth=A profundidade de aninhamento do "if-else" é {0,number,integer} (o máximo permitido é {1,number,integer}). -nested.try.depth=A profundidade de aninhamento do "try" é {0,number,integer} (o máximo permitido é {1,number,integer}). -no.array.trailing.comma=A matriz não deve conter vírgula à direita. -no.enum.trailing.comma=O enum não deve conter vírgula à direita. -overload.methods.declaration=Todos os métodos sobrecarregados devem ser colocados juntos. A colocação de métodos não sobrecarregados entre métodos sobrecarregados com o mesmo tipo é uma violação. O método sobrecarregado anterior foi encontrado na linha '' {0} ''. -parameter.assignment=A atribuição ao parâmetro ''{0}'' não é permitida. -require.this.method=A chamada de método no ''{0}'' precisa de "{1}this.". -require.this.variable=A referência à variável de instância ''{0}'' precisa de "{1}this.". -return.count=O número de "return"s é {0,number,integer} (o máximo permitido para métodos não vazios/lambdas é {1,number,integer}). -return.countVoid=O número de "return"s é {0,number,integer} (o máximo permitido para vazios métodos/construtores/lambdas é {1,number,integer}). -simplify.boolReturn=A lógica condicional pode ser removida. -simplify.expression=A expressão pode ser simplificada. -string.literal.equality=Literais de String deveriam ser comparados com "equals()", não com ''{0}''. -super.constructor.call=Chamada desnecessária ao construtor da superclasse sem argumentos. -unnecessary.paren.assign=Parênteses desnecessários ao redor do lado direito da atribuição. -unnecessary.paren.expr=Parênteses desnecessários ao redor da expressão. -unnecessary.paren.ident=Parênteses desnecessários ao redor do identificador ''{0}''. -unnecessary.paren.lambda=Parênteses desnecessários em torno do valor lambda. -unnecessary.paren.literal=Parênteses desnecessários em torno do literal ''{0}''. -unnecessary.paren.return=Parênteses desnecessários em torno do valor de retorno. -unnecessary.paren.string=Parênteses desnecessários em torno da cadeia {0}. -unnecessary.semicolon=Ponto-e-vírgula desnecessário. -unused.local.var=Variável local não utilizada '' {0} ''. -variable.declaration.usage.distance=A distância entre a declaração da variável ''{0}'' e o seu primeiro uso é {1}. O máximo permitido é {2}. -variable.declaration.usage.distance.extend=A distância entre a declaração da variável ''{0}'' e o seu primeiro uso é {1}. O máximo permitido é {2}. Considere tornar essa variável final se você ainda precisa armazenar o seu valor com antecedência (antes que chamadas de métodos que possam causar efeitos colaterais sobre o seu valor original). +multiple.variable.declarations=Apenas uma defini\u00C3\u00A7\u00C3\u00A3o de vari\u00C3\u00A1vel por linha \u00C3\u00A9 permitida. +multiple.variable.declarations.comma=Cada declara\u00C3\u00A7\u00C3\u00A3o de vari\u00C3\u00A1vel deve estar em sua pr\u00C3\u00B3pria instru\u00C3\u00A7\u00C3\u00A3o. +nested.for.depth=A profundidade de aninhamento do "for" \u00C3\u00A9 {0, number, integer} (o m\u00C3\u00A1ximo permitido \u00C3\u00A9 {1,number,integer}). +nested.if.depth=A profundidade de aninhamento do "if-else" \u00C3\u00A9 {0,number,integer} (o m\u00C3\u00A1ximo permitido \u00C3\u00A9 {1,number,integer}). +nested.try.depth=A profundidade de aninhamento do "try" \u00C3\u00A9 {0,number,integer} (o m\u00C3\u00A1ximo permitido \u00C3\u00A9 {1,number,integer}). +no.array.trailing.comma=A matriz n\u00C3\u00A3o deve conter v\u00C3\u00ADrgula \u00C3\u00A0 direita. +no.enum.trailing.comma=O enum n\u00C3\u00A3o deve conter v\u00C3\u00ADrgula \u00C3\u00A0 direita. +overload.methods.declaration=Todos os m\u00C3\u00A9todos sobrecarregados devem ser colocados um ao lado do outro. M\u00C3\u00A9todo sobrecarregado anterior localizado na linha ''{0}''. +parameter.assignment=A atribui\u00C3\u00A7\u00C3\u00A3o ao par\u00C3\u00A2metro ''{0}'' n\u00C3\u00A3o \u00C3\u00A9 permitida. +require.this.method=A chamada de m\u00C3\u00A9todo no ''{0}'' precisa de "{1}this.". +require.this.variable=A refer\u00C3\u00AAncia \u00C3\u00A0 vari\u00C3\u00A1vel de inst\u00C3\u00A2ncia ''{0}'' precisa de "{1}this.". +return.count=O n\u00C3\u00BAmero de "return"s \u00C3\u00A9 {0,number,integer} (o m\u00C3\u00A1ximo permitido para m\u00C3\u00A9todos n\u00C3\u00A3o vazios/lambdas \u00C3\u00A9 {1,number,integer}). +return.countVoid=O n\u00C3\u00BAmero de "return"s \u00C3\u00A9 {0,number,integer} (o m\u00C3\u00A1ximo permitido para vazios m\u00C3\u00A9todos/construtores/lambdas \u00C3\u00A9 {1,number,integer}). +simplify.boolReturn=A l\u00C3\u00B3gica condicional pode ser removida. +simplify.expression=A express\u00C3\u00A3o pode ser simplificada. +string.literal.equality=Literais de String deveriam ser comparados com "equals()", n\u00C3\u00A3o com ''{0}''. +super.constructor.call=Chamada desnecess\u00C3\u00A1ria ao construtor da superclasse sem argumentos. +unnecessary.paren.assign=Par\u00C3\u00AAnteses desnecess\u00C3\u00A1rios ao redor do lado direito da atribui\u00C3\u00A7\u00C3\u00A3o. +unnecessary.paren.expr=Par\u00C3\u00AAnteses desnecess\u00C3\u00A1rios ao redor da express\u00C3\u00A3o. +unnecessary.paren.ident=Par\u00C3\u00AAnteses desnecess\u00C3\u00A1rios ao redor do identificador ''{0}''. +unnecessary.paren.lambda=Par\u00C3\u00AAnteses desnecess\u00C3\u00A1rios em torno do valor lambda. +unnecessary.paren.literal=Par\u00C3\u00AAnteses desnecess\u00C3\u00A1rios em torno do literal ''{0}''. +unnecessary.paren.return=Par\u00C3\u00AAnteses desnecess\u00C3\u00A1rios em torno do valor de retorno. +unnecessary.paren.string=Par\u00C3\u00AAnteses desnecess\u00C3\u00A1rios em torno da cadeia {0}. +unnecessary.semicolon=Ponto-e-v\u00C3\u00ADrgula desnecess\u00C3\u00A1rio. +unused.local.var=Vari\u00C3\u00A1vel local n\u00C3\u00A3o utilizada '' {0} ''. +variable.declaration.usage.distance=A dist\u00C3\u00A2ncia entre a declara\u00C3\u00A7\u00C3\u00A3o da vari\u00C3\u00A1vel ''{0}'' e o seu primeiro uso \u00C3\u00A9 {1}. O m\u00C3\u00A1ximo permitido \u00C3\u00A9 {2}. +variable.declaration.usage.distance.extend=A dist\u00C3\u00A2ncia entre a declara\u00C3\u00A7\u00C3\u00A3o da vari\u00C3\u00A1vel ''{0}'' e o seu primeiro uso \u00C3\u00A9 {1}. O m\u00C3\u00A1ximo permitido \u00C3\u00A9 {2}. Considere tornar essa vari\u00C3\u00A1vel final se voc\u00C3\u00AA ainda precisa armazenar o seu valor com anteced\u00C3\u00AAncia (antes que chamadas de m\u00C3\u00A9todos que possam causar efeitos colaterais sobre o seu valor original). diff --git a/src/main/resources/com/puppycrawl/tools/checkstyle/checks/coding/messages_ru.properties b/src/main/resources/com/puppycrawl/tools/checkstyle/checks/coding/messages_ru.properties index dd9c2e64217..8d91be6815a 100644 --- a/src/main/resources/com/puppycrawl/tools/checkstyle/checks/coding/messages_ru.properties +++ b/src/main/resources/com/puppycrawl/tools/checkstyle/checks/coding/messages_ru.properties @@ -44,7 +44,7 @@ nested.if.depth=Глубина if-else {0,number,integer} (максимум {1,n nested.try.depth=Глубина try {0,number,integer} (максимум {1,number,integer}). no.array.trailing.comma=У последнего элемента массива не должно быть запятой. no.enum.trailing.comma=У последней константы перечисления не должно быть запятой. -overload.methods.declaration=Все перегруженные методы должны быть размещены рядом друг с другом. Размещение не перегруженных методов между перегруженными методами одного и того же типа является нарушением. Предыдущий перегруженный метод расположен в строке ''{0}''. +overload.methods.declaration=Все перегруженные методы следует размещать рядом друг с другом. Предыдущий перегруженный метод расположен в строке ''{0}''. parameter.assignment=Параметр метода ''{0}'' не должен менять значение. require.this.method=При вызове метода ''{0}'' нужно использовать \"{1}this.\". require.this.variable=При использовании переменной класса ''{0}'' нужно использовать \"{1}this.\". diff --git a/src/main/resources/com/puppycrawl/tools/checkstyle/checks/coding/messages_tr.properties b/src/main/resources/com/puppycrawl/tools/checkstyle/checks/coding/messages_tr.properties index c522116dbd8..ff90f2debdd 100644 --- a/src/main/resources/com/puppycrawl/tools/checkstyle/checks/coding/messages_tr.properties +++ b/src/main/resources/com/puppycrawl/tools/checkstyle/checks/coding/messages_tr.properties @@ -44,7 +44,7 @@ nested.if.depth=İç içe kullanılan ''if-else'' sayısı {0,number,integer} (m nested.try.depth=İç içe kullanılan ''try'' sayısı {0,number,integer} (maksimum izin verilen değer {1,number,integer}). no.array.trailing.comma=Dizi sonda virgül içermemelidir. no.enum.trailing.comma=Enum, sonda virgül içermemelidir. -overload.methods.declaration=Aşırı yüklenmiş tüm yöntemler yan yana yerleştirilmelidir. Aşırı yüklenmemiş yöntemleri aynı tip aşırı yüklenmiş yöntemler arasına yerleştirmek bir ihlaldir. '' {0} '' satırında önceki aşırı yüklenmiş yöntem. +overload.methods.declaration=Tüm aşırı yüklenmiş yöntemler yan yana yerleştirilmelidir. ''{0}'' satırında bulunan önceki aşırı yüklenmiş yöntem. parameter.assignment=''{0}'' parametresine atama yapılamaz. require.this.method=''{0}'' metoduna erişim "{1}this." kullanılarak yapılmalıdır. require.this.variable=''{0}'' değişkenine erişim "{1}this." kullanılarak yapılmalıdır. diff --git a/src/main/resources/com/puppycrawl/tools/checkstyle/checks/coding/messages_zh.properties b/src/main/resources/com/puppycrawl/tools/checkstyle/checks/coding/messages_zh.properties index 2a80006f644..a56ff9356c2 100644 --- a/src/main/resources/com/puppycrawl/tools/checkstyle/checks/coding/messages_zh.properties +++ b/src/main/resources/com/puppycrawl/tools/checkstyle/checks/coding/messages_zh.properties @@ -44,7 +44,7 @@ nested.if.depth=至多{1,number,integer}层 if,目前{0,number,integer}层。 nested.try.depth=至多{1,number,integer}层 try,目前{0,number,integer}层。 no.array.trailing.comma=數組不應包含結尾逗號。 no.enum.trailing.comma=枚举不应包含结尾逗号。 -overload.methods.declaration=所有重载的方法都应该相邻放置。在相同类型的重载方法之间放置非重载方法是违反的。最后一个重载方法在行 ''{0}'' 上。 +overload.methods.declaration=所有重载方法应彼此相邻放置。上一个重载方法位于 ''{0}'' 行。 parameter.assignment=不应对方法参数''{0}''赋值。 require.this.method=对方法 ''{0}'' 的调用需要 "{1}this."。 require.this.variable=对实例属性 ''{0}'' 的引用需要 "{1}this."。 diff --git a/src/test/java/com/puppycrawl/tools/checkstyle/checks/coding/OverloadMethodsDeclarationOrderCheckTest.java b/src/test/java/com/puppycrawl/tools/checkstyle/checks/coding/OverloadMethodsDeclarationOrderCheckTest.java index b36e42cab88..a578c811ed7 100644 --- a/src/test/java/com/puppycrawl/tools/checkstyle/checks/coding/OverloadMethodsDeclarationOrderCheckTest.java +++ b/src/test/java/com/puppycrawl/tools/checkstyle/checks/coding/OverloadMethodsDeclarationOrderCheckTest.java @@ -41,8 +41,12 @@ public void testDefault() throws Exception { final String[] expected = { "32:5: " + getCheckMessage(MSG_KEY, 21), "60:9: " + getCheckMessage(MSG_KEY, 49), - "72:5: " + getCheckMessage(MSG_KEY, 70), - "115:5: " + getCheckMessage(MSG_KEY, 104), + "65:9: " + getCheckMessage(MSG_KEY, 60), + "83:5: " + getCheckMessage(MSG_KEY, 81), + "127:5: " + getCheckMessage(MSG_KEY, 116), + "138:5: " + getCheckMessage(MSG_KEY, 132), + "149:9: " + getCheckMessage(MSG_KEY, 143), + "152:5: " + getCheckMessage(MSG_KEY, 138), }; verifyWithInlineConfigParser( getPath("InputOverloadMethodsDeclarationOrder.java"), expected); @@ -55,6 +59,7 @@ public void testOverloadMethodsDeclarationOrderRecords() throws Exception { "21:9: " + getCheckMessage(MSG_KEY, 15), "41:9: " + getCheckMessage(MSG_KEY, 35), "57:9: " + getCheckMessage(MSG_KEY, 50), + "63:9: " + getCheckMessage(MSG_KEY, 57), }; verifyWithInlineConfigParser( getNonCompilablePath("InputOverloadMethodsDeclarationOrderRecords.java"), diff --git a/src/test/resources-noncompilable/com/puppycrawl/tools/checkstyle/checks/coding/overloadmethodsdeclarationorder/InputOverloadMethodsDeclarationOrderRecords.java b/src/test/resources-noncompilable/com/puppycrawl/tools/checkstyle/checks/coding/overloadmethodsdeclarationorder/InputOverloadMethodsDeclarationOrderRecords.java index 6a3146bce93..9e5579828c7 100644 --- a/src/test/resources-noncompilable/com/puppycrawl/tools/checkstyle/checks/coding/overloadmethodsdeclarationorder/InputOverloadMethodsDeclarationOrderRecords.java +++ b/src/test/resources-noncompilable/com/puppycrawl/tools/checkstyle/checks/coding/overloadmethodsdeclarationorder/InputOverloadMethodsDeclarationOrderRecords.java @@ -60,7 +60,7 @@ public void foo() { // violation public MyClass() { } - public void foo(int i, String s) { + public void foo(int i, String s) { // violation } public void foo(String s, int i) { diff --git a/src/test/resources/com/puppycrawl/tools/checkstyle/checks/coding/overloadmethodsdeclarationorder/InputOverloadMethodsDeclarationOrder.java b/src/test/resources/com/puppycrawl/tools/checkstyle/checks/coding/overloadmethodsdeclarationorder/InputOverloadMethodsDeclarationOrder.java index 55aad4289a8..054ce990fae 100644 --- a/src/test/resources/com/puppycrawl/tools/checkstyle/checks/coding/overloadmethodsdeclarationorder/InputOverloadMethodsDeclarationOrder.java +++ b/src/test/resources/com/puppycrawl/tools/checkstyle/checks/coding/overloadmethodsdeclarationorder/InputOverloadMethodsDeclarationOrder.java @@ -60,6 +60,17 @@ public void fooMethod() public void overloadMethod(String s, Boolean b, int i) // violation { //some foo code + }; + + public void overloadMethod(double d) + { + // violation 2 lines above + /* + * Explanation of violation: + * There is a semicolon at the end of the previous method + * which is separating these overloaded methods + * and causing the violation. + */ } }; } @@ -101,6 +112,7 @@ public void overloadMethod(String s) //some foo code } + // comments between overloaded methods are allowed. public void overloadMethod(boolean b) { //some foo code @@ -116,6 +128,28 @@ public void overloadMethod(String s, Boolean b, int i) // violation { //some foo code } + + void test() {} + + String str; + + private interface Testing {} + + void test(int x) {} // violation + + private class Inner { + void test() {} + + void test(String str) {} + + void test2() {} + + String str; + + void test(int x) {} // violation + } + + void test(double d) {} // violation } enum Foo2 { diff --git a/src/xdocs-examples/resources/com/puppycrawl/tools/checkstyle/checks/coding/overloadmethodsdeclarationorder/Example1.txt b/src/xdocs-examples/resources/com/puppycrawl/tools/checkstyle/checks/coding/overloadmethodsdeclarationorder/Example1.txt index e79e5db8bae..05c26fe9154 100644 --- a/src/xdocs-examples/resources/com/puppycrawl/tools/checkstyle/checks/coding/overloadmethodsdeclarationorder/Example1.txt +++ b/src/xdocs-examples/resources/com/puppycrawl/tools/checkstyle/checks/coding/overloadmethodsdeclarationorder/Example1.txt @@ -8,8 +8,10 @@ // xdoc section -- start public void foo(int i) {} +// comments between overloaded methods are allowed. public void foo(String s) {} public void foo(String s, int i) {} public void foo(int i, String s) {} public void notFoo() {} +private interface ExampleInterface() {} // xdoc section -- end diff --git a/src/xdocs-examples/resources/com/puppycrawl/tools/checkstyle/checks/coding/overloadmethodsdeclarationorder/Example2.txt b/src/xdocs-examples/resources/com/puppycrawl/tools/checkstyle/checks/coding/overloadmethodsdeclarationorder/Example2.txt index 41156b571c2..c803cf5020c 100644 --- a/src/xdocs-examples/resources/com/puppycrawl/tools/checkstyle/checks/coding/overloadmethodsdeclarationorder/Example2.txt +++ b/src/xdocs-examples/resources/com/puppycrawl/tools/checkstyle/checks/coding/overloadmethodsdeclarationorder/Example2.txt @@ -8,8 +8,10 @@ // xdoc section -- start public void foo(int i) {} // OK +// comments between overloaded methods are allowed. public void foo(String s) {} // OK public void notFoo() {} // violation. Have to be after foo(String s, int i) public void foo(int i, String s) {} -public void foo(String s, int i) {} +private interface ExampleInterface() {} +public void foo(String s, int i) {} // violation. Have to be after foo(int i, String s) // xdoc section -- end diff --git a/src/xdocs/checks/coding/overloadmethodsdeclarationorder.xml b/src/xdocs/checks/coding/overloadmethodsdeclarationorder.xml index aaea853c3c9..f67381b0182 100644 --- a/src/xdocs/checks/coding/overloadmethodsdeclarationorder.xml +++ b/src/xdocs/checks/coding/overloadmethodsdeclarationorder.xml @@ -30,8 +30,10 @@ public void foo(int i) {} public void foo(String s) {} public void foo(String s, int i) {} +// comments between overloaded methods are allowed. public void foo(int i, String s) {} public void notFoo() {} +private interface Testing() {}

Example of incorrect grouping of overloaded methods:

@@ -39,7 +41,8 @@ public void foo(int i) {} // OK public void foo(String s) {} // OK public void notFoo() {} // violation. Have to be after foo(String s, int i) public void foo(int i, String s) {} -public void foo(String s, int i) {} +private interface Testing() {} +public void foo(String s, int i) {} // violation. Have to be after foo(int i, String s)