Revision dee434c2 src/Ganeti/THH/PyRPC.hs

b/src/Ganeti/THH/PyRPC.hs
98 98
    varName idx (AppT ListT t)        = listOf idx t
99 99
    varName idx (AppT (ConT n) t)
100 100
      | n == ''[]                     = listOf idx t
101
    varName idx (AppT (AppT (TupleT 2) t) t')
102
                                      = pairOf idx t t'
103
    varName idx (AppT (AppT (ConT n) t) t')
104
      | n == ''(,)                    = pairOf idx t t'
101 105
    varName idx t                     = do
102 106
      report False $ "Don't know how to make a Python variable name from "
103 107
                     ++ show t ++ "; using a numbered one."
......
108 112
    listOf :: Int -> Type -> Q Doc
109 113
    listOf idx t = (<> text "List") <$> varName idx t
110 114

  
115
    -- | Create a name for a method argument, knowing that its a pair of
116
    -- the given types.
117
    pairOf :: Int -> Type -> Type -> Q Doc
118
    pairOf idx t t' = do
119
      tn <- varName idx t
120
      tn' <- varName idx t'
121
      return $ tn <> text "_" <> tn' <> text "_Pair"
122

  
111 123
    lowerFirstNameQ :: Name -> Q Doc
112 124
    lowerFirstNameQ = return . text . lowerFirst . nameBase
113 125

  

Also available in: Unified diff