Fixed a bug that caused resolution of declarations within switch entry statements to not work properly.
diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/SwitchEntryContext.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/SwitchEntryContext.java
index 1d83e0a..e4a223c 100644
--- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/SwitchEntryContext.java
+++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/SwitchEntryContext.java
@@ -16,9 +16,11 @@
 
 package com.github.javaparser.symbolsolver.javaparsermodel.contexts;
 
+import com.github.javaparser.ast.nodeTypes.NodeWithStatements;
 import com.github.javaparser.ast.stmt.Statement;
 import com.github.javaparser.ast.stmt.SwitchEntryStmt;
 import com.github.javaparser.ast.stmt.SwitchStmt;
+import com.github.javaparser.resolution.UnsolvedSymbolException;
 import com.github.javaparser.resolution.declarations.ResolvedMethodDeclaration;
 import com.github.javaparser.resolution.declarations.ResolvedValueDeclaration;
 import com.github.javaparser.resolution.types.ResolvedType;
@@ -60,17 +62,19 @@
             }
         }
 
-        // look for declaration in other switch statements
+        // look for declaration in this and previous switch entry statements
         for (SwitchEntryStmt seStmt : switchStmt.getEntries()) {
-            if (!seStmt.equals(wrappedNode)) {
-                for (Statement stmt : seStmt.getStatements()) {
-                    SymbolDeclarator symbolDeclarator = JavaParserFactory.getSymbolDeclarator(stmt, typeSolver);
-                    SymbolReference<? extends ResolvedValueDeclaration> symbolReference = solveWith(symbolDeclarator, name);
-                    if (symbolReference.isSolved()) {
-                        return symbolReference;
-                    }
+            for (Statement stmt : seStmt.getStatements()) {
+                SymbolDeclarator symbolDeclarator = JavaParserFactory.getSymbolDeclarator(stmt, typeSolver);
+                SymbolReference<? extends ResolvedValueDeclaration> symbolReference = solveWith(symbolDeclarator, name);
+                if (symbolReference.isSolved()) {
+                    return symbolReference;
                 }
             }
+            // once we reach this switch entry statement, stop: we do not want to look in later switch entry statements
+            if (seStmt == wrappedNode) {
+                break;
+            }
         }
 
         return getParent().solveSymbol(name, typeSolver);
diff --git a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/MethodsResolutionTest.java b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/MethodsResolutionTest.java
index 2e6dc94..04a69b9 100644
--- a/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/MethodsResolutionTest.java
+++ b/javaparser-symbol-solver-testing/src/test/java/com/github/javaparser/symbolsolver/resolution/MethodsResolutionTest.java
@@ -35,6 +35,7 @@
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
 public class MethodsResolutionTest extends AbstractResolutionTest {
 
@@ -358,4 +359,23 @@
         assertEquals(true, type.isReferenceType());
         assertEquals(true, type.asReferenceType().getTypeDeclaration() instanceof JavaParserAnonymousClassDeclaration);
     }
+
+    @Test
+    public void resolveMethodCallWithScopeDeclarationInSwitchEntryStmt() {
+        CompilationUnit cu = parseSample("TryInSwitch");
+        ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "TryInSwitch");
+
+        MethodDeclaration method = Navigator.demandMethod(clazz, "foo");
+
+        MethodCallExpr callExpr = method.getBody().get().getStatement(1)
+                                          .asSwitchStmt().getEntry(0).getStatement(1)
+                                          .asTryStmt().getTryBlock().getStatement(1)
+                                          .asExpressionStmt().getExpression()
+                                          .asMethodCallExpr();
+
+        SymbolReference<ResolvedMethodDeclaration> reference = JavaParserFacade.get(new ReflectionTypeSolver()).solve(callExpr);
+
+        assertTrue(reference.isSolved());
+        assertEquals("java.io.File.delete()", reference.getCorrespondingDeclaration().getQualifiedSignature());
+    }
 }
diff --git a/javaparser-symbol-solver-testing/src/test/resources/TryInSwitch.java.txt b/javaparser-symbol-solver-testing/src/test/resources/TryInSwitch.java.txt
new file mode 100644
index 0000000..aee824f
--- /dev/null
+++ b/javaparser-symbol-solver-testing/src/test/resources/TryInSwitch.java.txt
@@ -0,0 +1,20 @@
+import java.io.File;

+

+class TryInSwitch {

+

+	public void foo() {

+		int i = 42;

+

+		switch (i) {

+			default:

+				File file;

+				try {

+					file = new File("...");

+					file.delete();

+				} catch (Exception e) {

+					// ...

+				}

+				break;

+		}

+	}

+}