| Index: compiler/javatests/com/google/dart/compiler/parser/SyntaxTest.java
 | 
| diff --git a/compiler/javatests/com/google/dart/compiler/parser/SyntaxTest.java b/compiler/javatests/com/google/dart/compiler/parser/SyntaxTest.java
 | 
| index 0ff46a9408dc6a58fcb3bdd1113c64d83f18e3c6..5eba5c863163c115d1374c1c67a922a7e4b40457 100644
 | 
| --- a/compiler/javatests/com/google/dart/compiler/parser/SyntaxTest.java
 | 
| +++ b/compiler/javatests/com/google/dart/compiler/parser/SyntaxTest.java
 | 
| @@ -27,6 +27,10 @@ import com.google.dart.compiler.ast.DartTryStatement;
 | 
|  import com.google.dart.compiler.ast.DartTypeNode;
 | 
|  import com.google.dart.compiler.ast.DartUnit;
 | 
|  import com.google.dart.compiler.ast.DartVariableStatement;
 | 
| +import com.google.dart.compiler.parser.ParserErrorCode;
 | 
| +import com.google.dart.compiler.resolver.ResolverErrorCode;
 | 
| +
 | 
| +import static com.google.dart.compiler.common.ErrorExpectation.errEx;
 | 
|  
 | 
|  import java.util.List;
 | 
|  
 | 
| @@ -463,4 +467,59 @@ public class SyntaxTest extends AbstractParserTest {
 | 
|              "  typedef();",
 | 
|              "}"));
 | 
|    }
 | 
| +  
 | 
| +  /**
 | 
| +   * The token 'super' is valid by itself (not as a qualifier or assignment selector) in only some
 | 
| +   * cases.
 | 
| +   */
 | 
| +  public void testLoneSuperExpression1() {
 | 
| +    parseUnit("phony_lone_super_expression1.dart",
 | 
| +              Joiner.on("\n").join(
 | 
| +            "class A {",
 | 
| +            "  method() {",
 | 
| +            "    super;",
 | 
| +            "    super ? true : false;",
 | 
| +            "    true ? true : super;",
 | 
| +            "    true ? super : false;",
 | 
| +            "    if (super && true) { }",
 | 
| +            "    if (super || false) { }",
 | 
| +            "  }",
 | 
| +            "}"),
 | 
| +            ParserErrorCode.SUPER_IS_NOT_VALID_ALONE_OR_AS_A_BOOLEAN_OPERAND, 3, 5,
 | 
| +            ParserErrorCode.SUPER_IS_NOT_VALID_ALONE_OR_AS_A_BOOLEAN_OPERAND, 4, 5,
 | 
| +            ParserErrorCode.SUPER_IS_NOT_VALID_ALONE_OR_AS_A_BOOLEAN_OPERAND, 5, 19,
 | 
| +            ParserErrorCode.SUPER_IS_NOT_VALID_ALONE_OR_AS_A_BOOLEAN_OPERAND, 6, 12,
 | 
| +            ParserErrorCode.SUPER_IS_NOT_VALID_AS_A_BOOLEAN_OPERAND, 7, 9,
 | 
| +            ParserErrorCode.SUPER_IS_NOT_VALID_AS_A_BOOLEAN_OPERAND, 8, 9);
 | 
| +  }
 | 
| +  
 | 
| +  public void testLoneSuperExpression2() throws Exception {
 | 
| +    parseUnit("phony_lone_super_expression1.dart",
 | 
| +        Joiner.on("\n").join(
 | 
| +            "// filler filler filler filler filler filler filler filler filler filler",
 | 
| +            "class Object {}",
 | 
| +            "class A {",
 | 
| +            "  method() {",
 | 
| +            "    if (1 + super) { }", // error
 | 
| +            "    if (super + 1) { }",  // ok
 | 
| +            "    if (1 == super) { }", // error
 | 
| +            "    if (super == 1) { }",  // ok            
 | 
| +            "    if (1 | super) { }", // error
 | 
| +            "    if (super | 1) { }",  // ok                        
 | 
| +            "    if (1 < super) { }", // error
 | 
| +            "    if (super < 1) { }",  // ok                                    
 | 
| +            "    if (1 << super) { }", // error
 | 
| +            "    if (super << 1) { }",  // ok                                                
 | 
| +            "    if (1 * super) { }", // error
 | 
| +            "    if (super * 1) { }",  // ok                                               
 | 
| +            "    var f = -super;", // ok
 | 
| +            "  }",
 | 
| +            "}"),
 | 
| +            ParserErrorCode.SUPER_CANNOT_BE_USED_AS_THE_SECOND_OPERAND, 5, 13,
 | 
| +            ParserErrorCode.SUPER_CANNOT_BE_USED_AS_THE_SECOND_OPERAND, 7, 14,
 | 
| +            ParserErrorCode.SUPER_CANNOT_BE_USED_AS_THE_SECOND_OPERAND, 9, 13,
 | 
| +            ParserErrorCode.SUPER_CANNOT_BE_USED_AS_THE_SECOND_OPERAND, 11, 13,
 | 
| +            ParserErrorCode.SUPER_CANNOT_BE_USED_AS_THE_SECOND_OPERAND, 13, 14,
 | 
| +            ParserErrorCode.SUPER_CANNOT_BE_USED_AS_THE_SECOND_OPERAND, 15, 13);
 | 
| +  }  
 | 
|  }
 | 
| 
 |