From 746facad4b16e626cb8bebc3242f3eef54799843 Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Wed, 30 Jun 2010 20:20:50 +0400 Subject: [PATCH] AspectJ support for @interfaces in aspects AspectJ type parameters in aspects --- .../psi/impl/source/parsing/DeclarationParsing.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/java/java-impl/src/com/intellij/psi/impl/source/parsing/DeclarationParsing.java b/java/java-impl/src/com/intellij/psi/impl/source/parsing/DeclarationParsing.java index 2c15cf9eacae..95219c560609 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/parsing/DeclarationParsing.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/parsing/DeclarationParsing.java @@ -592,6 +592,19 @@ public class DeclarationParsing extends Parsing { return pair; } + public TreeElement parseAnnotationMemberValue(PsiManager manager, CharSequence text) { + Lexer originalLexer = new JavaLexer(myContext.getLanguageLevel()); + FilterLexer lexer = new FilterLexer(originalLexer, new FilterLexer.SetFilter(StdTokenSets.WHITE_SPACE_OR_COMMENT_BIT_SET)); + lexer.start(text); + final TreeElement result = parseAnnotationMemberValue(lexer); + + final FileElement dummyRoot = DummyHolderFactory.createHolder(manager, null, myContext.getCharTable()).getTreeElement(); + dummyRoot.rawAddChildren(result); + ParseUtil.insertMissingTokens(dummyRoot, originalLexer, 0, text.length(), -1, WhiteSpaceAndCommentsProcessor.INSTANCE, myContext); + + return result; + } + private TreeElement parseAnnotationMemberValue(Lexer lexer) { TreeElement result; if (lexer.getTokenType() == JavaTokenType.AT) {