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 +1/−1
- src/Fqn.hs +47/−15
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 )