if (branchStatement && statement != null) {
// reportSyntaxError("Unreachable code", statement.sourceStart,
// statement.sourceEnd);
- problemReporter.unreachableCode(new String(scanner.getCurrentIdentifierSource()), statement.sourceStart,
+ if (! (statement instanceof BreakStatement)) {
+ /* don't give an error for break statement following return statement
+ Technically it's unreachable code, but in switch-case it's recommended to
+ avoid accidental fall-through later when editing the code */
+ problemReporter.unreachableCode(new String(scanner.getCurrentIdentifierSource()), statement.sourceStart,
statement.sourceEnd, referenceContext, compilationUnit.compilationResult);
+ }
}
if ((token == TokenNameRBRACE) || (token == TokenNamecase) || (token == TokenNamedefault) || (token == TokenNameelse)
|| (token == TokenNameelseif) || (token == TokenNameendif) || (token == TokenNameendfor)
FieldReference ref = (FieldReference) lhs;
if (!containsVariableSet(ref.token)) {
if (null==initHandler || initHandler.reportError()) {
- problemReporter.uninitializedLocalVariable(new String(ref.token), ref.sourceStart(), ref.sourceEnd(),
+ problemReporter.uninitializedLocalVariable(new String(ref.token), ref.sourceStart, ref.sourceEnd,
referenceContext, compilationUnit.compilationResult);
}
addVariableSet(ref.token);
// example:
// $var = & new Object();
if (fMethodVariables != null) {
- VariableInfo lhsInfo = new VariableInfo(((FieldReference) lhs).sourceStart());
+ VariableInfo lhsInfo = new VariableInfo(((FieldReference) lhs).sourceStart);
lhsInfo.reference = classRef;
lhsInfo.typeIdentifier = classRef.token;
fMethodVariables.put(new String(((FieldReference) lhs).token), lhsInfo);
if (fMethodVariables != null) {
VariableInfo rhsInfo = (VariableInfo) fMethodVariables.get(((FieldReference) rhs).token);
if (rhsInfo != null && rhsInfo.reference != null) {
- VariableInfo lhsInfo = new VariableInfo(((FieldReference) lhs).sourceStart());
+ VariableInfo lhsInfo = new VariableInfo(((FieldReference) lhs).sourceStart);
lhsInfo.reference = rhsInfo.reference;
lhsInfo.typeIdentifier = rhsInfo.typeIdentifier;
fMethodVariables.put(new String(((FieldReference) lhs).token), lhsInfo);
if (fMethodVariables != null) {
VariableInfo rhsInfo = (VariableInfo) fMethodVariables.get(((FieldReference) rhs).token);
if (rhsInfo != null && rhsInfo.reference != null) {
- VariableInfo lhsInfo = new VariableInfo(((FieldReference) lhs).sourceStart());
+ VariableInfo lhsInfo = new VariableInfo(((FieldReference) lhs).sourceStart);
lhsInfo.reference = rhsInfo.reference;
lhsInfo.typeIdentifier = rhsInfo.typeIdentifier;
fMethodVariables.put(new String(((FieldReference) lhs).token), lhsInfo);
// example:
// $var = new Object();
if (fMethodVariables != null) {
- VariableInfo lhsInfo = new VariableInfo(((FieldReference) lhs).sourceStart());
+ VariableInfo lhsInfo = new VariableInfo(((FieldReference) lhs).sourceStart);
lhsInfo.reference = (SingleTypeReference) rhs;
lhsInfo.typeIdentifier = ((SingleTypeReference) rhs).token;
fMethodVariables.put(new String(((FieldReference) lhs).token), lhsInfo);
}
if (rememberedVar == false && lhs != null && lhs instanceof FieldReference) {
if (fMethodVariables != null) {
- VariableInfo lhsInfo = new VariableInfo(((FieldReference) lhs).sourceStart());
+ VariableInfo lhsInfo = new VariableInfo(((FieldReference) lhs).sourceStart);
fMethodVariables.put(new String(((FieldReference) lhs).token), lhsInfo);
}
}