diff --git a/RegExpSupport/src/org/intellij/lang/regexp/RegExpElementTypes.java b/RegExpSupport/src/org/intellij/lang/regexp/RegExpElementTypes.java index 86df31eba369..aba92869a586 100644 --- a/RegExpSupport/src/org/intellij/lang/regexp/RegExpElementTypes.java +++ b/RegExpSupport/src/org/intellij/lang/regexp/RegExpElementTypes.java @@ -44,6 +44,4 @@ public interface RegExpElementTypes { TokenSet ATOMS = TokenSet.create(CLOSURE, BOUNDARY, SIMPLE_CLASS, CLASS, CHAR, GROUP, PROPERTY, BACKREF, NAMED_GROUP_REF, CONDITIONAL, NAMED_CHARACTER, SET_OPTIONS); - - TokenSet CLASS_ELEMENTS = TokenSet.create(CHAR, CHAR_RANGE, SIMPLE_CLASS, CLASS, INTERSECTION, PROPERTY); } diff --git a/RegExpSupport/src/org/intellij/lang/regexp/psi/impl/RegExpClassImpl.java b/RegExpSupport/src/org/intellij/lang/regexp/psi/impl/RegExpClassImpl.java index c4a130238091..686f9a77e237 100644 --- a/RegExpSupport/src/org/intellij/lang/regexp/psi/impl/RegExpClassImpl.java +++ b/RegExpSupport/src/org/intellij/lang/regexp/psi/impl/RegExpClassImpl.java @@ -16,7 +16,7 @@ package org.intellij.lang.regexp.psi.impl; import com.intellij.lang.ASTNode; -import org.intellij.lang.regexp.RegExpElementTypes; +import com.intellij.psi.util.PsiTreeUtil; import org.intellij.lang.regexp.RegExpTT; import org.intellij.lang.regexp.psi.RegExpClass; import org.intellij.lang.regexp.psi.RegExpClassElement; @@ -25,7 +25,9 @@ import org.jetbrains.annotations.NotNull; public class RegExpClassImpl extends RegExpElementImpl implements RegExpClass { - public RegExpClassImpl(ASTNode astNode) { + private static final RegExpClassElement[] EMPTY_CHILDREN = new RegExpClassElement[0]; + + public RegExpClassImpl(ASTNode astNode) { super(astNode); } @@ -37,12 +39,8 @@ public class RegExpClassImpl extends RegExpElementImpl implements RegExpClass { @Override public RegExpClassElement @NotNull [] getElements() { - final ASTNode[] nodes = getNode().getChildren(RegExpElementTypes.CLASS_ELEMENTS); - final RegExpClassElement[] e = new RegExpClassElement[nodes.length]; - for (int i = 0; i < e.length; i++) { - e[i] = (RegExpClassElement)nodes[i].getPsi(); - } - return e; + RegExpClassElement[] children = PsiTreeUtil.getChildrenOfType(this, RegExpClassElement.class); + return children != null ? children : EMPTY_CHILDREN; } @Override