diff --git a/test/evaluate_test.dart b/test/evaluate_test.dart
index c37974a..16c73e2 100644
--- a/test/evaluate_test.dart
+++ b/test/evaluate_test.dart
@@ -46,7 +46,7 @@
 ///
 /// By default, "true" is true and all other variables are "false".
 void _expectEval(String expression, bool result, {semantics}) {
-  var reason = expect(_eval(expression, semantics: semantics), equals(result),
+  expect(_eval(expression, semantics: semantics), equals(result),
       reason: 'Expected "$expression" to evaluate to $result.');
 }
 
diff --git a/test/parser_test.dart b/test/parser_test.dart
index 1803a5b..9e801f2 100644
--- a/test/parser_test.dart
+++ b/test/parser_test.dart
@@ -249,7 +249,7 @@
 }
 
 /// Parses [selector] and returns its root node.
-Node _parse(String selector) => new Parser(selector).parse();
+dynamic _parse(String selector) => new Parser(selector).parse();
 
 /// A matcher that asserts that a value is a [VariableNode] with the given
 /// [name].
diff --git a/test/scanner_test.dart b/test/scanner_test.dart
index 9c7be65..2ecda8d 100644
--- a/test/scanner_test.dart
+++ b/test/scanner_test.dart
@@ -155,7 +155,7 @@
 
     token = scanner.next();
     expect(token.type, equals(TokenType.identifier));
-    expect(token.name, equals("foo"));
+    expect((token as IdentifierToken).name, equals("foo"));
     expect(token.span.start.offset, equals(1));
     expect(token.span.end.offset, equals(4));
 
@@ -166,7 +166,7 @@
 
     token = scanner.next();
     expect(token.type, equals(TokenType.identifier));
-    expect(token.name, equals("bar"));
+    expect((token as IdentifierToken).name, equals("bar"));
     expect(token.span.start.offset, equals(8));
     expect(token.span.end.offset, equals(11));
 
@@ -264,4 +264,4 @@
 }
 
 /// Scans a single token from [selector].
-Token _scan(String selector) => new Scanner(selector).next();
+dynamic _scan(String selector) => new Scanner(selector).next();
