Keeping track of imported names, resolve enum storage types, some finetuning.
diff --git a/Type.cpp b/Type.cpp
index 5f3c462..548e425 100644
--- a/Type.cpp
+++ b/Type.cpp
@@ -17,6 +17,10 @@
     return false;
 }
 
+const ScalarType *Type::resolveToScalarType() const {
+    return NULL;
+}
+
 std::string Type::getCppType(StorageMode, std::string *) const {
     CHECK(!"Should not be here");
     return std::string();
@@ -64,6 +68,12 @@
             out << "if (_aidl_err != ::android::OK) { break; }\n\n";
             break;
         }
+
+        case ErrorMode_Return:
+        {
+            out << "if (_aidl_err != ::android::OK) { return _aidl_err; }\n\n";
+            break;
+        }
     }
 }
 
@@ -74,16 +84,24 @@
             out << "goto _aidl_error;\n";
             break;
         }
+
         case ErrorMode_Break:
         {
             out << "break;\n";
             break;
         }
+
         case ErrorMode_Ignore:
         {
             out << "/* ignoring _aidl_error! */";
             break;
         }
+
+        case ErrorMode_Return:
+        {
+            out << "return _aidl_err;\n";
+            break;
+        }
     }
 }