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_typeVariables() {
      TypeMirror setType = getType(Set.class);
      assertThat(TypeNames.forTypeMirror(setType))
          .isEqualTo(ParameterizedTypeName.create(Set.class, TypeVariableName.named("E")));
    }
test_case.class_method_signature: TypeNamesTest.forTypeMirror_typeVariables()
test_case.full_signature: @Test public void forTypeMirror_typeVariables()
test_case.identifier: forTypeMirror_typeVariables
test_case.invocations: getType isEqualTo assertThat forTypeMirror create named
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void forTypeMirror_typeVariables()
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)