Fix #1368081: Variable not initialized does not work for array access
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpeclipse / builder / IdentifierIndexManager.java
index 8e859cf..277a54f 100644 (file)
@@ -11,7 +11,6 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Comparator;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
@@ -111,21 +110,21 @@ public class IdentifierIndexManager {
     /**
      * Get the next token from input
      */
-    private void getNextToken() {
-      try {
-        fToken = fScanner.getNextToken();
-        if (Scanner.DEBUG) {
-          int currentEndPosition = fScanner.getCurrentTokenEndPosition();
-          int currentStartPosition = fScanner.getCurrentTokenStartPosition();
-          System.out.print(currentStartPosition + "," + currentEndPosition + ": ");
-          System.out.println(fScanner.toStringAction(fToken));
-        }
-        return;
-      } catch (InvalidInputException e) {
-        // ignore errors
-        //        e.printStackTrace();
+    private void getNextToken() throws InvalidInputException {
+      //      try {
+      fToken = fScanner.getNextToken();
+      if (Scanner.DEBUG) {
+        int currentEndPosition = fScanner.getCurrentTokenEndPosition();
+        int currentStartPosition = fScanner.getCurrentTokenStartPosition();
+        System.out.print(currentStartPosition + "," + currentEndPosition + ": ");
+        System.out.println(fScanner.toStringAction(fToken));
       }
-      fToken = TokenNameERROR;
+      return;
+      //      } catch (InvalidInputException e) {
+      //        // ignore errors
+      //        // e.printStackTrace();
+      //      }
+      //      fToken = TokenNameERROR;
     }
 
     private void parseDeclarations(char[] parent, StringBuffer buf, boolean goBack) {
@@ -268,6 +267,8 @@ public class IdentifierIndexManager {
             getNextToken();
           }
         }
+      } catch (InvalidInputException e) {
+        // ignore errors
       } catch (SyntaxError e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
@@ -284,8 +285,8 @@ public class IdentifierIndexManager {
       fScanner.setSource(charArray);
       fScanner.setPHPMode(false);
       fToken = TokenNameEOF;
-      getNextToken();
       try {
+        getNextToken();
         while (fToken != TokenNameEOF) { // && fToken != TokenNameERROR) {
           phpdocOffset = -1;
           hasModifiers = false;
@@ -377,6 +378,8 @@ public class IdentifierIndexManager {
             getNextToken();
           }
         }
+      } catch (InvalidInputException e) {
+        // ignore errors
       } catch (SyntaxError e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
@@ -490,20 +493,21 @@ public class IdentifierIndexManager {
     addIdentifiers(treeMap, file);
     return treeMap;
   }
+
   public TreeMap getIdentifiers(String startClazz) {
     TreeMap treeMap = new TreeMap(new StringComparator());
     addIdentifiers(treeMap, startClazz);
     return treeMap;
   }
-  
+
   public void addIdentifiers(TreeMap treeMap, IFile file) {
     String line = (String) fFileMap.get(file.getProjectRelativePath().toString());
     if (line != null) {
       PHPIdentifierLocation ident;
       ArrayList allClassNames = new ArrayList();
       addLine(treeMap, null, line, allClassNames);
-      int i=0;
-      while (i<allClassNames.size()) {
+      int i = 0;
+      while (i < allClassNames.size()) {
         String clazz = (String) allClassNames.get(i++);
         addClassName(treeMap, clazz, allClassNames);
       }
@@ -514,8 +518,8 @@ public class IdentifierIndexManager {
     PHPIdentifierLocation ident;
     ArrayList allClassNames = new ArrayList();
     addClassName(treeMap, startClazz, allClassNames);
-    int i=0;
-    while (i<allClassNames.size()) {
+    int i = 0;
+    while (i < allClassNames.size()) {
       String clazz = (String) allClassNames.get(i++);
       addClassName(treeMap, clazz, allClassNames);
     }
@@ -530,7 +534,7 @@ public class IdentifierIndexManager {
     String line;
     PHPIdentifierLocation ident;
     List list = getLocations(clazz);
-    if (list==null) {
+    if (list == null) {
       return false;
     }
     boolean result = false;