fixed used variables : special variables like _REQUEST, _POST ... will not be reporte...
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / compiler / ast / Variable.java
index 69163ca..cd38e79 100644 (file)
@@ -18,13 +18,22 @@ public class Variable extends AbstractVariable {
   /** A variable inside ($$varname). */
   private AbstractVariable variable;
 
+  private static final String _GET = "_GET";
+  private static final String _POST = "_POST";
+  private static final String _REQUEST = "_REQUEST";
+  private static final String _SERVER = "_SERVER";
+  private static final String _SESSION = "_SESSION";
+  private static final String _this = "this";
+
   /**
    * Create a new simple variable.
    * @param name the name
    * @param sourceStart the starting position
    * @param sourceEnd the ending position
    */
-  public Variable(final String name, final int sourceStart, final int sourceEnd) {
+  public Variable(final String name,
+                  final int sourceStart,
+                  final int sourceEnd) {
     super(sourceStart, sourceEnd);
     this.name = name;
   }
@@ -35,7 +44,9 @@ public class Variable extends AbstractVariable {
    * @param sourceStart the starting position
    * @param sourceEnd the ending position
    */
-  public Variable(final AbstractVariable variable, final int sourceStart, final int sourceEnd) {
+  public Variable(final AbstractVariable variable,
+                  final int sourceStart,
+                  final int sourceEnd) {
     super(sourceStart, sourceEnd);
     this.variable = variable;
   }
@@ -76,12 +87,22 @@ public class Variable extends AbstractVariable {
    * @return the variables used
    */
   public List getUsedVariable() {
-    final ArrayList list = new ArrayList(1);
+    final String varName;
     if (name == null) {
-      list.add(new VariableUsage(variable.getName(), getSourceStart()));
+      varName = variable.getName();
     } else {
-      list.add(new VariableUsage(name, getSourceStart()));
+      varName = name;
     }
+    if (name.equals(_GET) ||
+        name.equals(_POST) ||
+        name.equals(_REQUEST) ||
+        name.equals(_SERVER) ||
+        name.equals(_SESSION) ||
+        name.equals(_this)) {
+      return new ArrayList(1);
+    }
+    final ArrayList list = new ArrayList(1);
+    list.add(new VariableUsage(varName, sourceStart));
     return list;
   }
 }