From 12a40c1b0f244b603154420f15c1d7375da224bb Mon Sep 17 00:00:00 2001 From: "peter.gromov" Date: Fri, 12 Nov 2010 15:46:30 +0300 Subject: [PATCH] don't let modify gdsl scripts after their initialization (EA-21410) --- .../jetbrains/plugins/groovy/dsl/GroovyDslExecutor.groovy | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/dsl/GroovyDslExecutor.groovy b/plugins/groovy/src/org/jetbrains/plugins/groovy/dsl/GroovyDslExecutor.groovy index 4dfb2112225a..44d7dad25b24 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/dsl/GroovyDslExecutor.groovy +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/dsl/GroovyDslExecutor.groovy @@ -8,9 +8,8 @@ import org.jetbrains.plugins.groovy.dsl.psi.PsiEnhancerCategory import org.jetbrains.plugins.groovy.dsl.toplevel.CompositeContextFilter import org.jetbrains.plugins.groovy.dsl.toplevel.ContextFilter import org.jetbrains.plugins.groovy.dsl.toplevel.GdslMetaClassProperties -import com.intellij.openapi.project.Project -/** + /** * @author ilyas */ @@ -20,6 +19,7 @@ public class GroovyDslExecutor { private final String myFileName; static final String ideaVersion + private boolean locked = false static { def major = ApplicationInfo.instance.majorVersion @@ -52,9 +52,12 @@ public class GroovyDslExecutor { mc.initialize() script.metaClass = mc script.run() + + locked = true } def addClassEnhancer(List cts, Closure toDo) { + assert !locked : 'Contributing to GDSL is only allowed at the top-level of the *.gdsl script' enhancers << Pair.create(CompositeContextFilter.compose(cts, false), toDo) }