test_class.declarator: compilationRule = new CompilationRule()
test_class.modifier: @Rule public
test_class.original_string: @Rule public CompilationRule compilationRule = new CompilationRule();
test_class.type: CompilationRule
test_class.var_name: compilationRule
test_class.file: compiler/src/test/java/dagger/internal/codegen/MethodSignatureFormatterTest.java
test_class.identifier: MethodSignatureFormatterTest
test_case.body: @Test public void methodSignatureTest() {
      Elements elements = compilationRule.getElements();
      TypeElement inner = elements.getTypeElement(InnerClass.class.getCanonicalName());
      ExecutableElement method = Iterables.getOnlyElement(methodsIn(inner.getEnclosedElements()));
      String formatted = new MethodSignatureFormatter(compilationRule.getTypes()).format(method);
      // This is gross, but it turns out that annotation order is not guaranteed when getting
      // all the AnnotationMirrors from an Element, so I have to test this chopped-up to make it
      // less brittle.
      assertThat(formatted).contains("@Singleton");
      assertThat(formatted).doesNotContain("@javax.inject.Singleton"); // maybe more importantly
      assertThat(formatted)
          .contains("@dagger.internal.codegen.MethodSignatureFormatterTest.OuterClass.Foo"
              + "(bar=String.class)");
      assertThat(formatted).contains(" String "); // return type compressed
      assertThat(formatted).contains("int, ImmutableList<Boolean>)"); // parameters compressed.
    }
test_case.class_method_signature: MethodSignatureFormatterTest.methodSignatureTest()
test_case.full_signature: @Test public void methodSignatureTest()
test_case.identifier: methodSignatureTest
test_case.invocations: getElements getTypeElement getCanonicalName getOnlyElement methodsIn getEnclosedElements format getTypes contains assertThat doesNotContain assertThat contains assertThat contains assertThat contains assertThat
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void methodSignatureTest()
focal_class.declarator: types
focal_class.modifier: private final
focal_class.original_string: private final Types types;
focal_class.type: Types
focal_class.var_name: types
focal_class.file: compiler/src/main/java/dagger/internal/codegen/MethodSignatureFormatter.java
focal_class.identifier: MethodSignatureFormatter
focal_class.class_method_signature: MethodSignatureFormatter.MethodSignatureFormatter(Types types)
focal_class.full_signature:   MethodSignatureFormatter(Types types)
focal_class.identifier: MethodSignatureFormatter
focal_class.parameters: (Types types)
focal_class.signature:  MethodSignatureFormatter(Types types)
focal_class.class_method_signature: MethodSignatureFormatter.format(ExecutableElement method)
focal_class.full_signature: @Override public String format(ExecutableElement method)
focal_class.identifier: format
focal_class.modifiers: @Override public
focal_class.parameters: (ExecutableElement method)
focal_class.return: String
focal_class.signature: String format(ExecutableElement method)
focal_class.class_method_signature: MethodSignatureFormatter.format(ExecutableElement method, Optional<DeclaredType> container)
focal_class.full_signature: public String format(ExecutableElement method, Optional<DeclaredType> container)
focal_class.identifier: format
focal_class.modifiers: public
focal_class.parameters: (ExecutableElement method, Optional<DeclaredType> container)
focal_class.return: String
focal_class.signature: String format(ExecutableElement method, Optional<DeclaredType> container)
focal_class.class_method_signature: MethodSignatureFormatter.appendParameter(StringBuilder builder, VariableElement parameter,
        TypeMirror type)
focal_class.full_signature: private static void appendParameter(StringBuilder builder, VariableElement parameter,
        TypeMirror type)
focal_class.identifier: appendParameter
focal_class.modifiers: private static
focal_class.parameters: (StringBuilder builder, VariableElement parameter,
        TypeMirror type)
focal_class.return: void
focal_class.signature: void appendParameter(StringBuilder builder, VariableElement parameter,
        TypeMirror type)
focal_class.class_method_signature: MethodSignatureFormatter.nameOfType(TypeMirror type)
focal_class.full_signature: private static String nameOfType(TypeMirror type)
focal_class.identifier: nameOfType
focal_class.modifiers: private static
focal_class.parameters: (TypeMirror type)
focal_class.return: String
focal_class.signature: String nameOfType(TypeMirror type)
focal_class.superclass: extends Formatter<ExecutableElement>
focal_method.body: @Override public String format(ExecutableElement method) {
      return format(method, Optional.<DeclaredType>absent());
    }
focal_method.class_method_signature: MethodSignatureFormatter.format(ExecutableElement method)
focal_method.full_signature: @Override public String format(ExecutableElement method)
focal_method.identifier: format
focal_method.invocations: format absent
focal_method.modifiers: @Override public
focal_method.parameters: (ExecutableElement method)
focal_method.return: String
focal_method.signature: String format(ExecutableElement method)