summaryrefslogtreecommitdiff
path: root/java/java-impl/src/com/intellij/compilerOutputIndex/api/fs/AsmUtil.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/java-impl/src/com/intellij/compilerOutputIndex/api/fs/AsmUtil.java')
-rw-r--r--java/java-impl/src/com/intellij/compilerOutputIndex/api/fs/AsmUtil.java30
1 files changed, 30 insertions, 0 deletions
diff --git a/java/java-impl/src/com/intellij/compilerOutputIndex/api/fs/AsmUtil.java b/java/java-impl/src/com/intellij/compilerOutputIndex/api/fs/AsmUtil.java
index 315a78e69c49..0ed09484e3ad 100644
--- a/java/java-impl/src/com/intellij/compilerOutputIndex/api/fs/AsmUtil.java
+++ b/java/java-impl/src/com/intellij/compilerOutputIndex/api/fs/AsmUtil.java
@@ -2,11 +2,13 @@ package com.intellij.compilerOutputIndex.api.fs;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.util.ArrayUtil;
+import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.asm4.Opcodes;
import org.jetbrains.asm4.Type;
import java.util.ArrayList;
import java.util.List;
+import java.util.Set;
/**
* @author Dmitry Batkovich <dmitry.batkovich@jetbrains.com>
@@ -52,4 +54,32 @@ public final class AsmUtil implements Opcodes {
private static String asJavaInnerClassQName(final String byteCodeClassQName) {
return StringUtil.replaceChar(byteCodeClassQName, '$', '.');
}
+
+ //char
+ //double
+ //float
+ //int
+ //long
+ //short
+ //boolean
+ //byte
+ //void
+ //Object
+ //String
+ //Class
+ private static final Set<String> ASM_PRIMITIVE_TYPES = ContainerUtil.newHashSet("C", "D", "F", "I", "J", "S", "Z", "B", "V",
+ "Ljava/lang/Object;",
+ "Ljava/lang/String;",
+ "Ljava/lang/Class;");
+
+ public static boolean isPrimitive(final String asmType) {
+ return ASM_PRIMITIVE_TYPES.contains(asmType);
+ }
+
+ public static boolean isPrimitiveOrArray(final String asmType) {
+ if (asmType.startsWith("[")) {
+ return true;
+ }
+ return isPrimitive(asmType);
+ }
}