-import Debug.Trace
-
-
-data MethodInfo = MethodInfo {
- methodname :: B.ByteString,
- classname :: B.ByteString,
- signature :: MethodSignature,
- index :: Word16 }
-
-instance Eq MethodInfo where
- (MethodInfo m_a c_a s_a i_a) == (MethodInfo m_b c_b s_b i_b) =
- (m_a == m_b) && (c_a == c_b) && (s_a == s_b) && (i_a == i_b)
-
--- TODO(bernhard): not really efficient. also, outsource that to hs-java
-instance Ord MethodSignature where
- compare (MethodSignature args_a ret_a) (MethodSignature args_b ret_b)
- | cmp_args /= EQ = cmp_args
- | otherwise = (show ret_a) `compare` (show ret_b)
- where
- cmp_args = (show args_a) `compare` (show args_b)
-
-instance Ord MethodInfo where
- compare (MethodInfo m_a c_a s_a i_a) (MethodInfo m_b c_b s_b i_b)
- | cmp_m /= EQ = cmp_m
- | cmp_c /= EQ = cmp_c
- | cmp_s /= EQ = cmp_s
- | otherwise = i_a `compare` i_b
- where
- cmp_m = m_a `compare` m_b
- cmp_c = c_a `compare` c_b
- cmp_s = s_a `compare` s_b
-
-instance Show MethodInfo where
- show (MethodInfo method c sig idx) =
- (toString c) ++ "." ++ (toString method) ++ "." ++ (show sig) ++ "@" ++ (show idx)