GROOVY-7894: Add access to declared variables within VariableScope (closes #370)
diff --git a/src/main/org/codehaus/groovy/ast/VariableScope.java b/src/main/org/codehaus/groovy/ast/VariableScope.java
index b96617e..077c7f1 100644
--- a/src/main/org/codehaus/groovy/ast/VariableScope.java
+++ b/src/main/org/codehaus/groovy/ast/VariableScope.java
@@ -178,4 +178,26 @@
public Iterator<Variable> getReferencedClassVariablesIterator() {
return getReferencedClassVariables().values().iterator();
}
-}
\ No newline at end of file
+
+ /**
+ * Gets a map containing the variables declared in this scope.
+ * This map cannot be modified.
+ * @return a map containing the declared variable references
+ */
+ public Map<String, Variable> getDeclaredVariables() {
+ if (declaredVariables == Collections.EMPTY_MAP) {
+ return declaredVariables;
+ } else {
+ return Collections.unmodifiableMap(declaredVariables);
+ }
+ }
+
+ /**
+ * Gets an iterator for the declared class variables. The remove
+ * operation is not supported.
+ * @return an iterator for the declared variables
+ */
+ public Iterator<Variable> getDeclaredVariablesIterator() {
+ return getDeclaredVariables().values().iterator();
+ }
+}