test_class.declarator: compilation = new CompilationRule()
test_class.modifier: @Rule public final
test_class.original_string: @Rule public final CompilationRule compilation = new CompilationRule();
test_class.type: CompilationRule
test_class.var_name: compilation
test_class.file: compiler/src/test/java/dagger/internal/codegen/writer/TypeNamesTest.java
test_class.identifier: TypeNamesTest
test_case.body: @Test
    public void forTypeMirror_primitive() {
      assertThat(TypeNames.forTypeMirror(compilation.getTypes().getPrimitiveType(TypeKind.BOOLEAN)))
          .isEqualTo(PrimitiveName.BOOLEAN);
      assertThat(TypeNames.forTypeMirror(compilation.getTypes().getPrimitiveType(TypeKind.BYTE)))
          .isEqualTo(PrimitiveName.BYTE);
      assertThat(TypeNames.forTypeMirror(compilation.getTypes().getPrimitiveType(TypeKind.SHORT)))
          .isEqualTo(PrimitiveName.SHORT);
      assertThat(TypeNames.forTypeMirror(compilation.getTypes().getPrimitiveType(TypeKind.INT)))
          .isEqualTo(PrimitiveName.INT);
      assertThat(TypeNames.forTypeMirror(compilation.getTypes().getPrimitiveType(TypeKind.LONG)))
          .isEqualTo(PrimitiveName.LONG);
      assertThat(TypeNames.forTypeMirror(compilation.getTypes().getPrimitiveType(TypeKind.CHAR)))
          .isEqualTo(PrimitiveName.CHAR);
      assertThat(TypeNames.forTypeMirror(compilation.getTypes().getPrimitiveType(TypeKind.FLOAT)))
          .isEqualTo(PrimitiveName.FLOAT);
      assertThat(TypeNames.forTypeMirror(compilation.getTypes().getPrimitiveType(TypeKind.DOUBLE)))
          .isEqualTo(PrimitiveName.DOUBLE);
    }
test_case.class_method_signature: TypeNamesTest.forTypeMirror_primitive()
test_case.full_signature: @Test public void forTypeMirror_primitive()
test_case.identifier: forTypeMirror_primitive
test_case.invocations: isEqualTo assertThat forTypeMirror getPrimitiveType getTypes isEqualTo assertThat forTypeMirror getPrimitiveType getTypes isEqualTo assertThat forTypeMirror getPrimitiveType getTypes isEqualTo assertThat forTypeMirror getPrimitiveType getTypes isEqualTo assertThat forTypeMirror getPrimitiveType getTypes isEqualTo assertThat forTypeMirror getPrimitiveType getTypes isEqualTo assertThat forTypeMirror getPrimitiveType getTypes isEqualTo assertThat forTypeMirror getPrimitiveType getTypes
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void forTypeMirror_primitive()
focal_class.declarator: FOR_TYPE_MIRROR =
        new Function<TypeMirror, TypeName>() {
          @Override public TypeName apply(TypeMirror input) {
            return forTypeMirror(input);
          }
        }
focal_class.modifier: static final
focal_class.original_string: static final Function<TypeMirror, TypeName> FOR_TYPE_MIRROR =
        new Function<TypeMirror, TypeName>() {
          @Override public TypeName apply(TypeMirror input) {
            return forTypeMirror(input);
          }
        };
focal_class.type: Function<TypeMirror, TypeName>
focal_class.var_name: FOR_TYPE_MIRROR
focal_class.file: compiler/src/main/java/dagger/internal/codegen/writer/TypeNames.java
focal_class.identifier: TypeNames
focal_class.class_method_signature: TypeNames.forClass(Class<?> clazz)
focal_class.full_signature: public static TypeName forClass(Class<?> clazz)
focal_class.identifier: forClass
focal_class.modifiers: public static
focal_class.parameters: (Class<?> clazz)
focal_class.return: TypeName
focal_class.signature: TypeName forClass(Class<?> clazz)
focal_class.class_method_signature: TypeNames.forTypeMirror(TypeMirror mirror)
focal_class.full_signature: public static TypeName forTypeMirror(TypeMirror mirror)
focal_class.identifier: forTypeMirror
focal_class.modifiers: public static
focal_class.parameters: (TypeMirror mirror)
focal_class.return: TypeName
focal_class.signature: TypeName forTypeMirror(TypeMirror mirror)
focal_class.class_method_signature: TypeNames.TypeNames()
focal_class.full_signature: private  TypeNames()
focal_class.identifier: TypeNames
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.signature:  TypeNames()
focal_method.body: public static TypeName forTypeMirror(TypeMirror mirror) {
      return mirror.accept(new SimpleTypeVisitor6<TypeName, Void>() {
        @Override
        protected TypeName defaultAction(TypeMirror e, Void p) {
          throw new IllegalArgumentException(e.toString());
        }
        
        @Override
        public TypeName visitTypeVariable(TypeVariable t, Void p) {
          return TypeVariableName.fromTypeVariable(t);
        }
  
        @Override
        public ArrayTypeName visitArray(ArrayType t, Void p) {
          return new ArrayTypeName(t.getComponentType().accept(this, null));
        }
  
        @Override
        public TypeName visitDeclared(DeclaredType t, Void p) {
          return t.getTypeArguments().isEmpty()
              ? ClassName.fromTypeElement((TypeElement) t.asElement())
              : new ParameterizedTypeName(
                  ClassName.fromTypeElement((TypeElement) t.asElement()),
                  FluentIterable.from(t.getTypeArguments()).transform(FOR_TYPE_MIRROR));
        }
  
        @Override
        public PrimitiveName visitPrimitive(PrimitiveType t, Void p) {
          return PrimitiveName.forTypeMirror(t);
        }
  
        @Override
        public WildcardName visitWildcard(WildcardType t, Void p) {
          return WildcardName.forTypeMirror(t);
        }
  
        @Override
        public NullName visitNull(NullType t, Void p) {
          return NullName.NULL;
        }
  
        @Override
        public TypeName visitNoType(NoType t, Void p) {
          switch (t.getKind()) {
            case VOID:
              return VoidName.VOID;
            case PACKAGE:
              throw new IllegalArgumentException();
            default:
              throw new IllegalStateException();
          }
        }
      }, null);
    }
focal_method.class_method_signature: TypeNames.forTypeMirror(TypeMirror mirror)
focal_method.full_signature: public static TypeName forTypeMirror(TypeMirror mirror)
focal_method.identifier: forTypeMirror
focal_method.invocations: accept toString fromTypeVariable accept getComponentType isEmpty getTypeArguments fromTypeElement asElement fromTypeElement asElement transform from getTypeArguments forTypeMirror forTypeMirror getKind
focal_method.modifiers: public static
focal_method.parameters: (TypeMirror mirror)
focal_method.return: TypeName
focal_method.signature: TypeName forTypeMirror(TypeMirror mirror)