Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
小 白蛋
Intellij Community
Commits
d03ea6d6
Commit
d03ea6d6
authored
6 years ago
by
Daniil Ovchinnikov
Browse files
Options
Download
Email Patches
Plain Diff
[groovy] get rid of duplicate code
parent
5d244d0e
Branches unavailable
Tags unavailable
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/GrReferenceElementImpl.java
+11
-1
.../plugins/groovy/lang/psi/impl/GrReferenceElementImpl.java
plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/GrReferenceExpressionImpl.java
+4
-9
...mpl/statements/expressions/GrReferenceExpressionImpl.java
plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/types/GrCodeReferenceElementImpl.java
+4
-8
...roovy/lang/psi/impl/types/GrCodeReferenceElementImpl.java
with
19 additions
and
18 deletions
+19
-18
plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/GrReferenceElementImpl.java
+
11
-
1
View file @
d03ea6d6
...
...
@@ -137,8 +137,18 @@ public abstract class GrReferenceElementImpl<Q extends PsiElement> extends Groov
throw
new
IncorrectOperationException
(
"Cannot bind to:"
+
element
+
" of class "
+
element
.
getClass
());
}
private
GrReferenceElement
<
Q
>
bindWithQualifiedRef
(
@NotNull
String
qName
)
{
GrReferenceElement
<
Q
>
qualifiedRef
=
createQualifiedRef
(
qName
);
final
GrTypeArgumentList
list
=
getTypeArgumentList
();
if
(
list
!=
null
)
{
qualifiedRef
.
getNode
().
addChild
(
list
.
copy
().
getNode
());
}
getNode
().
getTreeParent
().
replaceChild
(
getNode
(),
qualifiedRef
.
getNode
());
return
qualifiedRef
;
}
protected
abstract
GrReferenceElement
<
Q
>
bindWithQualifiedRef
(
@NotNull
String
qName
);
@NotNull
protected
abstract
GrReferenceElement
<
Q
>
createQualifiedRef
(
@NotNull
String
qName
);
protected
boolean
bindsCorrectly
(
PsiElement
element
)
{
return
isReferenceTo
(
element
);
...
...
This diff is collapsed.
Click to expand it.
plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/GrReferenceExpressionImpl.java
+
4
-
9
View file @
d03ea6d6
...
...
@@ -18,6 +18,7 @@ import org.jetbrains.annotations.NotNull;
import
org.jetbrains.annotations.Nullable
;
import
org.jetbrains.plugins.groovy.lang.lexer.GroovyTokenTypes
;
import
org.jetbrains.plugins.groovy.lang.lexer.TokenSets
;
import
org.jetbrains.plugins.groovy.lang.psi.GrReferenceElement
;
import
org.jetbrains.plugins.groovy.lang.psi.GroovyElementVisitor
;
import
org.jetbrains.plugins.groovy.lang.psi.GroovyFile
;
import
org.jetbrains.plugins.groovy.lang.psi.GroovyPsiElementFactory
;
...
...
@@ -32,7 +33,6 @@ import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrMethod
import
org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrParenthesizedExpression
;
import
org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrReferenceExpression
;
import
org.jetbrains.plugins.groovy.lang.psi.api.toplevel.imports.GrImportStatement
;
import
org.jetbrains.plugins.groovy.lang.psi.api.types.GrTypeArgumentList
;
import
org.jetbrains.plugins.groovy.lang.psi.dataFlow.types.TypeInferenceHelper
;
import
org.jetbrains.plugins.groovy.lang.psi.impl.*
;
import
org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.literals.GrLiteralImpl
;
...
...
@@ -134,15 +134,10 @@ public class GrReferenceExpressionImpl extends GrReferenceElementImpl<GrExpressi
return
super
.
handleElementRename
(
newElementName
);
}
@NotNull
@Override
protected
GrReferenceExpression
bindWithQualifiedRef
(
@NotNull
String
qName
)
{
GrReferenceExpression
qualifiedRef
=
GroovyPsiElementFactory
.
getInstance
(
getProject
()).
createReferenceExpressionFromText
(
qName
);
final
GrTypeArgumentList
list
=
getTypeArgumentList
();
if
(
list
!=
null
)
{
qualifiedRef
.
getNode
().
addChild
(
list
.
copy
().
getNode
());
}
getNode
().
getTreeParent
().
replaceChild
(
getNode
(),
qualifiedRef
.
getNode
());
return
qualifiedRef
;
protected
GrReferenceElement
<
GrExpression
>
createQualifiedRef
(
@NotNull
String
qName
)
{
return
GroovyPsiElementFactory
.
getInstance
(
getProject
()).
createReferenceExpressionFromText
(
qName
);
}
@Override
...
...
This diff is collapsed.
Click to expand it.
plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/types/GrCodeReferenceElementImpl.java
+
4
-
8
View file @
d03ea6d6
...
...
@@ -11,6 +11,7 @@ import com.intellij.util.containers.ContainerUtil;
import
org.jetbrains.annotations.NotNull
;
import
org.jetbrains.plugins.groovy.lang.lexer.TokenSets
;
import
org.jetbrains.plugins.groovy.lang.parser.GroovyElementTypes
;
import
org.jetbrains.plugins.groovy.lang.psi.GrReferenceElement
;
import
org.jetbrains.plugins.groovy.lang.psi.GroovyElementVisitor
;
import
org.jetbrains.plugins.groovy.lang.psi.GroovyPsiElementFactory
;
import
org.jetbrains.plugins.groovy.lang.psi.api.GroovyResolveResult
;
...
...
@@ -70,15 +71,10 @@ public class GrCodeReferenceElementImpl extends GrReferenceElementImpl<GrCodeRef
}
}
@NotNull
@Override
protected
GrCodeReferenceElement
bindWithQualifiedRef
(
@NotNull
String
qName
)
{
final
GrCodeReferenceElement
qualifiedRef
=
GroovyPsiElementFactory
.
getInstance
(
getProject
()).
createTypeOrPackageReference
(
qName
);
final
PsiElement
list
=
getTypeArgumentList
();
if
(
list
!=
null
)
{
qualifiedRef
.
getNode
().
addChild
(
list
.
copy
().
getNode
());
}
getNode
().
getTreeParent
().
replaceChild
(
getNode
(),
qualifiedRef
.
getNode
());
return
qualifiedRef
;
protected
GrReferenceElement
<
GrCodeReferenceElement
>
createQualifiedRef
(
@NotNull
String
qName
)
{
return
GroovyPsiElementFactory
.
getInstance
(
getProject
()).
createTypeOrPackageReference
(
qName
);
}
@Override
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment
Menu
Projects
Groups
Snippets
Help