mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Make "Magic number" inspection less trigger happy (IDEA-137998)
This commit is contained in:
+6
-4
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2014 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -77,7 +77,8 @@ public class MagicNumberInspectionBase extends BaseInspection {
|
||||
return;
|
||||
}
|
||||
if (ignoreInHashCode) {
|
||||
final PsiMethod containingMethod = PsiTreeUtil.getParentOfType(expression, PsiMethod.class);
|
||||
final PsiMethod containingMethod = PsiTreeUtil.getParentOfType(expression, PsiMethod.class, true,
|
||||
PsiClass.class, PsiLambdaExpression.class);
|
||||
if (MethodUtils.isHashCode(containingMethod)) {
|
||||
return;
|
||||
}
|
||||
@@ -119,7 +120,8 @@ public class MagicNumberInspectionBase extends BaseInspection {
|
||||
CommonClassNames.JAVA_LANG_ABSTRACT_STRING_BUILDER,
|
||||
CommonClassNames.JAVA_UTIL_MAP,
|
||||
CommonClassNames.JAVA_UTIL_COLLECTION,
|
||||
"java.io.ByteArrayOutputStream") != null;
|
||||
"java.io.ByteArrayOutputStream",
|
||||
"java.awt.Dimension") != null;
|
||||
}
|
||||
|
||||
private boolean isSpecialCaseLiteral(PsiLiteralExpression expression) {
|
||||
@@ -145,7 +147,7 @@ public class MagicNumberInspectionBase extends BaseInspection {
|
||||
|
||||
public boolean isFinalVariableInitialization(PsiExpression expression) {
|
||||
final PsiElement parent =
|
||||
PsiTreeUtil.skipParentsOfType(expression, PsiTypeCastExpression.class, PsiParenthesizedExpression.class, PsiPrefixExpression.class);
|
||||
PsiTreeUtil.getParentOfType(expression, PsiVariable.class, PsiAssignmentExpression.class);
|
||||
final PsiVariable variable;
|
||||
if (!(parent instanceof PsiVariable)) {
|
||||
if (!(parent instanceof PsiAssignmentExpression)) {
|
||||
|
||||
+41
-1
@@ -1,7 +1,9 @@
|
||||
package com.siyeh.igtest.abstraction.magic_number;
|
||||
|
||||
import java.awt.*;
|
||||
import java.util.*;
|
||||
import java.io.*;
|
||||
import java.util.List;
|
||||
|
||||
@Size(max = 15)
|
||||
public class MagicNumber
|
||||
@@ -11,6 +13,7 @@ public class MagicNumber
|
||||
private static int s_foo2 = <warning descr="Magic number '400'">400</warning>;
|
||||
private final int m_foo2 = -(-(400));
|
||||
private static final List s_set = new ArrayList(400);
|
||||
private static final Dimension PREFERRED_SIZE = new Dimension(600, 400);
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
@@ -18,6 +21,10 @@ public class MagicNumber
|
||||
set.toString();
|
||||
}
|
||||
|
||||
public Dimension getScreenSize() {
|
||||
return new Dimension(2880, 1800);
|
||||
}
|
||||
|
||||
public boolean equals(final Object o) {
|
||||
if (this == o) return true;
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
@@ -31,6 +38,9 @@ public class MagicNumber
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
new Object() {
|
||||
private int i = <warning descr="Magic number '987'">987</warning>;
|
||||
};
|
||||
int result;
|
||||
result = m_foo;
|
||||
result = 29 * result + m_foo2;
|
||||
@@ -38,7 +48,7 @@ public class MagicNumber
|
||||
}
|
||||
|
||||
void foo() {
|
||||
final int value = <warning descr="Magic number '101'">101</warning> * <warning descr="Magic number '55'">55</warning>;
|
||||
final int value = 101 * 55;
|
||||
}
|
||||
|
||||
ByteArrayOutputStream out = new ByteArrayOutputStream(756);
|
||||
@@ -49,4 +59,34 @@ public class MagicNumber
|
||||
}
|
||||
@interface Size {
|
||||
int max();
|
||||
}
|
||||
enum Planet {
|
||||
MERCURY (3.303e+23, 2.4397e6),
|
||||
VENUS (4.869e+24, 6.0518e6),
|
||||
EARTH (5.976e+24, 6.37814e6),
|
||||
MARS (6.421e+23, 3.3972e6),
|
||||
JUPITER (1.9e+27, 7.1492e7),
|
||||
SATURN (5.688e+26, 6.0268e7),
|
||||
URANUS (8.686e+25, 2.5559e7),
|
||||
NEPTUNE (1.024e+26, 2.4746e7),
|
||||
PLUTO (1.27e+22, 1.137e6);
|
||||
|
||||
private final double mass; // in kilograms
|
||||
private final double radius; // in meters
|
||||
Planet(double mass, double radius) {
|
||||
this.mass = mass;
|
||||
this.radius = radius;
|
||||
}
|
||||
public double mass() { return mass; }
|
||||
public double radius() { return radius; }
|
||||
|
||||
// universal gravitational constant (m3 kg-1 s-2)
|
||||
public static final double G = 6.67300E-11;
|
||||
|
||||
public double surfaceGravity() {
|
||||
return G * mass / (radius * radius);
|
||||
}
|
||||
public double surfaceWeight(double otherMass) {
|
||||
return otherMass * surfaceGravity();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user