Add a cast and fix some lints (#1988)

diff --git a/lib/src/dartdoc_options.dart b/lib/src/dartdoc_options.dart
index f9038cd..af61792 100644
--- a/lib/src/dartdoc_options.dart
+++ b/lib/src/dartdoc_options.dart
@@ -679,7 +679,7 @@
     with DartdocSyntheticOption<T>, _DartdocFileOption<T> {
   bool _parentDirOverridesChild;
   @override
-  T Function(DartdocSyntheticOption<T>, Directory) _compute;
+  final T Function(DartdocSyntheticOption<T>, Directory) _compute;
 
   DartdocOptionFileSynth(String name, this._compute,
       {bool mustExist = false,
@@ -725,7 +725,7 @@
   bool _splitCommas;
 
   @override
-  T Function(DartdocSyntheticOption<T>, Directory) _compute;
+  final T Function(DartdocSyntheticOption<T>, Directory) _compute;
 
   DartdocOptionArgSynth(String name, this._compute,
       {String abbr,
@@ -778,7 +778,7 @@
 class DartdocOptionSyntheticOnly<T> extends DartdocOption<T>
     with DartdocSyntheticOption<T> {
   @override
-  T Function(DartdocSyntheticOption<T>, Directory) _compute;
+  final T Function(DartdocSyntheticOption<T>, Directory) _compute;
 
   DartdocOptionSyntheticOnly(String name, this._compute,
       {bool mustExist = false,
diff --git a/lib/src/model.dart b/lib/src/model.dart
index 2d788d5..0585b60 100644
--- a/lib/src/model.dart
+++ b/lib/src/model.dart
@@ -3032,7 +3032,7 @@
                   e.computeConstantValue().getField(e.name).toIntValue();
               newModelElement = new EnumField.forConstant(
                   index, e, library, packageGraph, getter);
-            } else if (e.enclosingElement.isEnum) {
+            } else if ((e.enclosingElement as ClassElement).isEnum) {
               newModelElement =
                   new EnumField(e, library, packageGraph, getter, setter);
             } else {
@@ -5882,7 +5882,7 @@
   /// All libraries in [libraries] must come from [package].
   @override
   Package package;
-  String _name;
+  final String _name;
   @override
   DartdocOptionContext config;
   final Set<Categorization> _allItems = new Set();