packages feed

dhscanner-bitcode 1.0.13 → 1.0.14

raw patch · 2 files changed

+48/−16 lines, 2 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Fqn: Imported :: ImportedContent -> Fqn
- Fqn: ImportedLocal :: ImportedLocalContent -> ImportedContent
- Fqn: ImportedLocalContent :: FilePath -> [String] -> ImportedLocalContent
- Fqn: ImportedThirdParty :: ImportedThirdPartyContent -> ImportedContent
- Fqn: ImportedThirdPartyContent :: String -> [String] -> ImportedThirdPartyContent
- Fqn: [importedLocalLocation] :: ImportedLocalContent -> FilePath
- Fqn: [importedLocalRest] :: ImportedLocalContent -> [String]
- Fqn: [importedThirdPartyName] :: ImportedThirdPartyContent -> String
- Fqn: [importedThirdPartyRest] :: ImportedThirdPartyContent -> [String]
- Fqn: data ImportedContent
- Fqn: data ImportedLocalContent
- Fqn: data ImportedThirdPartyContent
- Fqn: instance Data.Aeson.Types.FromJSON.FromJSON Fqn.ImportedContent
- Fqn: instance Data.Aeson.Types.FromJSON.FromJSON Fqn.ImportedLocalContent
- Fqn: instance Data.Aeson.Types.FromJSON.FromJSON Fqn.ImportedThirdPartyContent
- Fqn: instance Data.Aeson.Types.ToJSON.ToJSON Fqn.ImportedContent
- Fqn: instance Data.Aeson.Types.ToJSON.ToJSON Fqn.ImportedLocalContent
- Fqn: instance Data.Aeson.Types.ToJSON.ToJSON Fqn.ImportedThirdPartyContent
- Fqn: instance GHC.Classes.Eq Fqn.ImportedContent
- Fqn: instance GHC.Classes.Eq Fqn.ImportedLocalContent
- Fqn: instance GHC.Classes.Eq Fqn.ImportedThirdPartyContent
- Fqn: instance GHC.Classes.Ord Fqn.ImportedContent
- Fqn: instance GHC.Classes.Ord Fqn.ImportedLocalContent
- Fqn: instance GHC.Classes.Ord Fqn.ImportedThirdPartyContent
- Fqn: instance GHC.Generics.Generic Fqn.ImportedContent
- Fqn: instance GHC.Generics.Generic Fqn.ImportedLocalContent
- Fqn: instance GHC.Generics.Generic Fqn.ImportedThirdPartyContent
- Fqn: instance GHC.Show.Show Fqn.ImportedContent
- Fqn: instance GHC.Show.Show Fqn.ImportedLocalContent
- Fqn: instance GHC.Show.Show Fqn.ImportedThirdPartyContent
+ Fqn: FirstPartyImport :: FirstPartyImportContent -> Fqn
+ Fqn: FirstPartyImportContent :: FilePath -> Maybe String -> FirstPartyImportContent
+ Fqn: ThirdPartyImport :: ThirdPartyImportContent -> Fqn
+ Fqn: ThirdPartyImportContent :: String -> [String] -> Maybe String -> Maybe String -> ThirdPartyImportContent
+ Fqn: [firstPartyImportedLocation] :: FirstPartyImportContent -> FilePath
+ Fqn: [firstPartyImportedName] :: FirstPartyImportContent -> Maybe String
+ Fqn: [thirdPartyImportJustOneName] :: ThirdPartyImportContent -> Maybe String
+ Fqn: [thirdPartyImportWithAlias] :: ThirdPartyImportContent -> Maybe String
+ Fqn: [thirdPartyImportedPackageName] :: ThirdPartyImportContent -> String
+ Fqn: [thirdPartyImportedPartsFromPackage] :: ThirdPartyImportContent -> [String]
+ Fqn: data FirstPartyImportContent
+ Fqn: data ThirdPartyImportContent
+ Fqn: instance Data.Aeson.Types.FromJSON.FromJSON Fqn.FirstPartyImportContent
+ Fqn: instance Data.Aeson.Types.FromJSON.FromJSON Fqn.ThirdPartyImportContent
+ Fqn: instance Data.Aeson.Types.ToJSON.ToJSON Fqn.FirstPartyImportContent
+ Fqn: instance Data.Aeson.Types.ToJSON.ToJSON Fqn.ThirdPartyImportContent
+ Fqn: instance GHC.Classes.Eq Fqn.FirstPartyImportContent
+ Fqn: instance GHC.Classes.Eq Fqn.ThirdPartyImportContent
+ Fqn: instance GHC.Classes.Ord Fqn.FirstPartyImportContent
+ Fqn: instance GHC.Classes.Ord Fqn.ThirdPartyImportContent
+ Fqn: instance GHC.Generics.Generic Fqn.FirstPartyImportContent
+ Fqn: instance GHC.Generics.Generic Fqn.ThirdPartyImportContent
+ Fqn: instance GHC.Show.Show Fqn.FirstPartyImportContent
+ Fqn: instance GHC.Show.Show Fqn.ThirdPartyImportContent

Files

dhscanner-bitcode.cabal view
@@ -20,7 +20,7 @@     in mind. The commands resemble an abstract RISC-style assembley, motivated by keeping
     later-phases analyses as simple as possible.
 
-version:            1.0.13
+version:            1.0.14
 license:            GPL-3.0-only
 license-file:       LICENSE
 author:             OrenGitHub
src/Fqn.hs view
@@ -21,11 +21,12 @@ -- * Unidirectional resolution only ( one pass )
 --
 data Fqn
-   = Imported ImportedContent
-   | ClassInstance ClassInstanceContent
+   = ClassInstance ClassInstanceContent
    | ClassName ClassNameContent
    | FieldedAccess Fqn Token.FieldName
    | CallMethodOfClass Location String Token.ClassName
+   | FirstPartyImport FirstPartyImportContent
+   | ThirdPartyImport ThirdPartyImportContent
    | NativeTypeInt
    | NativeTypeString
    | NativeTypeBool
@@ -36,24 +37,55 @@    | Unknwon
    deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )
 
-data ImportedContent
-   = ImportedLocal ImportedLocalContent
-   | ImportedThirdParty ImportedThirdPartyContent
-   deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )
-
-data ImportedLocalContent
-   = ImportedLocalContent
+data FirstPartyImportContent
+   = FirstPartyImportContent
      {
-         importedLocalLocation :: FilePath,
-         importedLocalRest :: [ String ]
+         firstPartyImportedLocation :: FilePath,
+         firstPartyImportedName :: Maybe String
      }
      deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )
 
-data ImportedThirdPartyContent
-   = ImportedThirdPartyContent
+-- |
+--
+-- ==== __Examples:__
+--
+-- * Entire third party package import
+--
+-- @
+-- # thirdPartyImportedPackageName == "urllib3"
+-- # thirdPartyImportedPartsFromPackage == []
+-- # thirdPartyImportJustOneName == Nothing
+-- # thirdPartyImportWithAlias == Nothing
+-- import urllib3
+-- @
+--
+-- * Specific third party import
+--
+-- @
+-- # thirdPartyImportedPackageName == "scipy"
+-- # thirdPartyImportedPartsFromPackage == [ "linalg" ]
+-- # thirdPartyImportJustOneName == Nothing
+-- # thirdPartyImportWithAlias == Nothing
+-- import scipy.linalg
+-- @
+--
+-- * Named third party import
+--
+-- @
+-- # thirdPartyImportedPackageName == "django"
+-- # thirdPartyImportedPartsFromPackage == [ "db" ]
+-- # thirdPartyImportJustOneName == "models"
+-- # thirdPartyImportWithAlias == Nothing
+-- from django.db import models
+-- @
+--
+data ThirdPartyImportContent
+   = ThirdPartyImportContent
      {
-         importedThirdPartyName :: String,
-         importedThirdPartyRest :: [ String ]
+         thirdPartyImportedPackageName :: String,
+         thirdPartyImportedPartsFromPackage :: [ String ],
+         thirdPartyImportJustOneName :: Maybe String,
+         thirdPartyImportWithAlias :: Maybe String
      }
      deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )