1
1
mirror of https://github.com/github/semantic.git synced 2024-11-23 08:27:56 +03:00

Tagging uses Traversable1 instead of GTraversable1.

This commit is contained in:
Rob Rix 2020-02-04 13:56:19 -05:00
parent 16c2e867e8
commit 790431ac74
No known key found for this signature in database
GPG Key ID: 2BE643E01DC032AE
6 changed files with 21 additions and 40 deletions

View File

@ -14,7 +14,6 @@ import AST.Traversable1
import Control.Effect.Reader
import Control.Effect.Writer
import Data.Text as Text
import GHC.Generics
import qualified Language.Go.AST as Go
import Source.Loc
import Source.Source as Source
@ -31,8 +30,7 @@ class ToTags t where
default tags
:: ( Has (Reader Source) sig m
, Has (Writer Tags.Tags) sig m
, Generic1 t
, GTraversable1 ToTags (Rep1 t)
, Traversable1 ToTags t
)
=> t Loc
-> m ()
@ -73,12 +71,11 @@ instance ToTags (Token sym n) where tags _ = pure ()
gtags
:: ( Has (Reader Source) sig m
, Has (Writer Tags.Tags) sig m
, Generic1 t
, GTraversable1 ToTags (Rep1 t)
, Traversable1 ToTags t
)
=> t Loc
-> m ()
gtags = traverse1_ @ToTags (const (pure ())) tags . Generics
gtags = traverse1_ @ToTags (const (pure ())) tags
yieldTag :: (Has (Reader Source) sig m, Has (Writer Tags.Tags) sig m) => Text -> Kind -> Loc -> Range -> m ()
yieldTag name kind loc range = do

View File

@ -12,7 +12,7 @@ import AST.Token
import AST.Traversable1
import Control.Effect.Reader
import Control.Effect.Writer
import GHC.Generics
import GHC.Generics ((:+:)(..))
import qualified Language.Java.AST as Java
import Source.Loc
import Source.Range
@ -30,8 +30,7 @@ class ToTags t where
default tags
:: ( Has (Reader Source) sig m
, Has (Writer Tags.Tags) sig m
, Generic1 t
, GTraversable1 ToTags (Rep1 t)
, Traversable1 ToTags t
)
=> t Loc
-> m ()
@ -81,12 +80,11 @@ instance ToTags Java.MethodInvocation where
gtags
:: ( Has (Reader Source) sig m
, Has (Writer Tags.Tags) sig m
, Generic1 t
, GTraversable1 ToTags (Rep1 t)
, Traversable1 ToTags t
)
=> t Loc
-> m ()
gtags = traverse1_ @ToTags (const (pure ())) tags . Generics
gtags = traverse1_ @ToTags (const (pure ())) tags
instance ToTags Java.AnnotatedType
instance ToTags Java.Annotation

View File

@ -17,7 +17,6 @@ import Control.Effect.Writer
import Data.List.NonEmpty (NonEmpty (..))
import Data.Maybe (listToMaybe)
import Data.Text as Text
import GHC.Generics
import qualified Language.Python.AST as Py
import Source.Loc
import Source.Range
@ -35,8 +34,7 @@ class ToTags t where
default tags
:: ( Has (Reader Source) sig m
, Has (Writer Tags.Tags) sig m
, Generic1 t
, GTraversable1 ToTags (Rep1 t)
, Traversable1 ToTags t
)
=> t Loc
-> m ()
@ -51,8 +49,7 @@ instance ToTags (Token sym n) where tags _ = pure ()
keywordFunctionCall
:: ( Has (Reader Source) sig m
, Has (Writer Tags.Tags) sig m
, Generic1 t
, GTraversable1 ToTags (Rep1 t)
, Traversable1 ToTags t
)
=> t Loc -> Loc -> Range -> Text -> m ()
keywordFunctionCall t loc range name = yieldTag name Function loc range Nothing >> gtags t
@ -128,12 +125,11 @@ docComment _ _ = Nothing
gtags
:: ( Has (Reader Source) sig m
, Has (Writer Tags.Tags) sig m
, Generic1 t
, GTraversable1 ToTags (Rep1 t)
, Traversable1 ToTags t
)
=> t Loc
-> m ()
gtags = traverse1_ @ToTags (const (pure ())) tags . Generics
gtags = traverse1_ @ToTags (const (pure ())) tags
instance ToTags Py.AliasedImport
instance ToTags Py.ArgumentList

View File

@ -21,7 +21,6 @@ import Control.Effect.Writer
import Control.Monad
import Data.Foldable
import Data.Text as Text
import GHC.Generics
import qualified Language.Ruby.AST as Rb
import Source.Loc
import Source.Range as Range
@ -41,8 +40,7 @@ class ToTags t where
:: ( Has (Reader Source) sig m
, Has (Writer Tags.Tags) sig m
, Has (State [Text]) sig m
, Generic1 t
, GTraversable1 ToTags (Rep1 t)
, Traversable1 ToTags t
)
=> t Loc
-> m ()
@ -133,8 +131,7 @@ yieldMethodNameTag
:: ( Has (State [Text]) sig m
, Has (Reader Source) sig m
, Has (Writer Tags.Tags) sig m
, Generic1 t
, GTraversable1 ToTags (Rep1 t)
, Traversable1 ToTags t
) => t Loc -> Loc -> Range -> Rb.MethodName Loc -> m ()
yieldMethodNameTag t loc range (Rb.MethodName expr) = enterScope True $ case expr of
Prj Rb.Identifier { text = name } -> yield name
@ -337,12 +334,11 @@ gtags
:: ( Has (Reader Source) sig m
, Has (Writer Tags.Tags) sig m
, Has (State [Text]) sig m
, Generic1 t
, GTraversable1 ToTags (Rep1 t)
, Traversable1 ToTags t
)
=> t Loc
-> m ()
gtags = traverse1_ @ToTags (const (pure ())) tags . Generics
gtags = traverse1_ @ToTags (const (pure ())) tags
-- instance ToTags Rb.Alias
instance ToTags Rb.Arg

View File

@ -16,7 +16,6 @@ import Control.Effect.Reader
import Control.Effect.Writer
import Data.Foldable
import Data.Text as Text
import GHC.Generics
import qualified Language.TSX.AST as Tsx
import Source.Loc
import Source.Source as Source
@ -33,8 +32,7 @@ class ToTags t where
default tags
:: ( Has (Reader Source) sig m
, Has (Writer Tags.Tags) sig m
, Generic1 t
, GTraversable1 ToTags (Rep1 t)
, Traversable1 ToTags t
)
=> t Loc
-> m ()
@ -123,12 +121,11 @@ instance ToTags (Token sym n) where tags _ = pure ()
gtags
:: ( Has (Reader Source) sig m
, Has (Writer Tags.Tags) sig m
, Generic1 t
, GTraversable1 ToTags (Rep1 t)
, Traversable1 ToTags t
)
=> t Loc
-> m ()
gtags = traverse1_ @ToTags (const (pure ())) tags . Generics
gtags = traverse1_ @ToTags (const (pure ())) tags
-- These are all valid, but point to built-in functions (e.g. require) that a la
-- carte doesn't display and since we have nothing to link to yet (can't

View File

@ -16,7 +16,6 @@ import Control.Effect.Reader
import Control.Effect.Writer
import Data.Foldable
import Data.Text as Text
import GHC.Generics
import qualified Language.TypeScript.AST as Ts
import Source.Loc
import Source.Source as Source
@ -33,8 +32,7 @@ class ToTags t where
default tags
:: ( Has (Reader Source) sig m
, Has (Writer Tags.Tags) sig m
, Generic1 t
, GTraversable1 ToTags (Rep1 t)
, Traversable1 ToTags t
)
=> t Loc
-> m ()
@ -116,12 +114,11 @@ instance ToTags (Token sym n) where tags _ = pure ()
gtags
:: ( Has (Reader Source) sig m
, Has (Writer Tags.Tags) sig m
, Generic1 t
, GTraversable1 ToTags (Rep1 t)
, Traversable1 ToTags t
)
=> t Loc
-> m ()
gtags = traverse1_ @ToTags (const (pure ())) tags . Generics
gtags = traverse1_ @ToTags (const (pure ())) tags
-- These are all valid, but point to built-in functions (e.g. require) that a la
-- carte doesn't display and since we have nothing to link to yet (can't