sort directives, use isNotEmpty
diff --git a/example/call_parser.dart b/example/call_parser.dart
index 9a993ea..85325e4 100644
--- a/example/call_parser.dart
+++ b/example/call_parser.dart
@@ -43,7 +43,7 @@
       '}',
       errors: errors);
 
-  if (!errors.isEmpty) {
+  if (errors.isNotEmpty) {
     print("Got ${errors.length} errors.\n");
     for (var error in errors) {
       print(error);
@@ -61,7 +61,7 @@
       '}',
       errors: errors);
 
-  if (!errors.isEmpty) {
+  if (errors.isNotEmpty) {
     print("Got ${errors.length} errors.\n");
     for (var error in errors) {
       print(error);
@@ -75,7 +75,7 @@
   print('   ===================================');
   stylesheetError = parseCss('# div1 { color: red; }', errors: errors);
 
-  if (!errors.isEmpty) {
+  if (errors.isNotEmpty) {
     print("Detected ${errors.length} problem in checked mode.\n");
     for (var error in errors) {
       print(error);
@@ -88,7 +88,7 @@
   print('4. Parse a selector only:');
   print('   ======================');
   var selectorAst = css.selector('#div .foo', errors: errors);
-  if (!errors.isEmpty) {
+  if (errors.isNotEmpty) {
     print("Got ${errors.length} errors.\n");
     for (var error in errors) {
       print(error);
diff --git a/lib/parser.dart b/lib/parser.dart
index 6688507..32e27f5 100644
--- a/lib/parser.dart
+++ b/lib/parser.dart
@@ -8,9 +8,9 @@
 
 import 'package:source_span/source_span.dart';
 
-import 'visitor.dart';
 import 'src/messages.dart';
 import 'src/options.dart';
+import 'visitor.dart';
 
 export 'src/messages.dart' show Message;
 export 'src/options.dart';
diff --git a/lib/src/analyzer.dart b/lib/src/analyzer.dart
index 6c6ba6d..0bfb2f3 100644
--- a/lib/src/analyzer.dart
+++ b/lib/src/analyzer.dart
@@ -222,7 +222,7 @@
     // If any expandedRuleSets and we're back at the top-level rule set then
     // there were nested rule set(s).
     if (_parentRuleSet == null) {
-      if (!_expandedRuleSets.isEmpty) {
+      if (_expandedRuleSets.isNotEmpty) {
         // Remember ruleset to replace with these flattened rulesets.
         _expansions[node] = _expandedRuleSets;
         _expandedRuleSets = [];
@@ -278,8 +278,8 @@
           // Substitue the & with the parent selector and only use a combinator
           // descendant if & is prefix by a sequence with an empty name e.g.,
           // "... + &", "&", "... ~ &", etc.
-          var hasPrefix = !newSequence.isEmpty &&
-              !newSequence.last.simpleSelector.name.isEmpty;
+          var hasPrefix = newSequence.isNotEmpty &&
+              newSequence.last.simpleSelector.name.isNotEmpty;
           newSequence.addAll(
               hasPrefix ? _convertToDescendentSequence(parent) : parent);
         } else {
@@ -906,7 +906,7 @@
 
   SelectorGroup _currSelectorGroup;
   int _currDeclIndex;
-  List<int> _extendsToRemove = [];
+  final List<int> _extendsToRemove = [];
 
   void visitRuleSet(RuleSet node) {
     var oldSelectorGroup = _currSelectorGroup;
diff --git a/lib/src/css_printer.dart b/lib/src/css_printer.dart
index 91c2861..14c1f8c 100644
--- a/lib/src/css_printer.dart
+++ b/lib/src/css_printer.dart
@@ -529,7 +529,7 @@
 
   void visitVarUsage(VarUsage node) {
     emit('var(${node.name}');
-    if (!node.defaultValues.isEmpty) {
+    if (node.defaultValues.isNotEmpty) {
       emit(',');
       for (var defaultValue in node.defaultValues) {
         emit(' ');