| Methods | 
			
	
			
				
					
	public
					
					
				
			 | 
			
				__construct(string $className, ?Type $subtractedType = null, ?ClassReflection $classReflection = null)
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					static
					
				
			 | 
			
				resetCaches(): void
	
	 
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				getClassName(): string
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				hasProperty(string $propertyName): TrinaryLogic
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				getProperty(string $propertyName, ClassMemberAccessAnswerer $scope): PropertyReflection
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				getUnresolvedPropertyPrototype(
	string $propertyName,
	ClassMemberAccessAnswerer $scope,
): UnresolvedPropertyPrototypeReflection
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				getPropertyWithoutTransformingStatic(string $propertyName, ClassMemberAccessAnswerer $scope): PropertyReflection
	
	 
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				getReferencedClasses(): string[]
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				accepts(Type $type, bool $strictTypes): TrinaryLogic
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				isSuperTypeOf(Type $type): TrinaryLogic
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				equals(Type $type): bool
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				describe(VerbosityLevel $level): string
	
			 | 
		
			#
		 | 
	
	
			
				
					
	protected
					
					
				
			 | 
			
				describeAdditionalCacheKey(): string
	
	 
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				toNumber(): Type
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				toInteger(): Type
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				toFloat(): Type
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				toString(): Type
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				toArray(): Type
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				toBoolean(): BooleanType
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				canAccessProperties(): TrinaryLogic
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				canCallMethods(): TrinaryLogic
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				hasMethod(string $methodName): TrinaryLogic
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				getMethod(string $methodName, ClassMemberAccessAnswerer $scope): MethodReflection
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				getUnresolvedMethodPrototype(string $methodName, ClassMemberAccessAnswerer $scope): UnresolvedMethodPrototypeReflection
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				canAccessConstants(): TrinaryLogic
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				hasConstant(string $constantName): TrinaryLogic
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				getConstant(string $constantName): ConstantReflection
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				isIterable(): TrinaryLogic
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				isIterableAtLeastOnce(): TrinaryLogic
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				getIterableKeyType(): Type
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				getIterableValueType(): Type
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				isArray(): TrinaryLogic
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				isOversizedArray(): TrinaryLogic
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				isString(): TrinaryLogic
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				isNumericString(): TrinaryLogic
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				isNonEmptyString(): TrinaryLogic
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				isNonFalsyString(): TrinaryLogic
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				isLiteralString(): TrinaryLogic
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				isOffsetAccessible(): TrinaryLogic
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				hasOffsetValueType(Type $offsetType): TrinaryLogic
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				getOffsetValueType(Type $offsetType): Type
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				setOffsetValueType(?Type $offsetType, Type $valueType, bool $unionValues = true): Type
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				unsetOffset(Type $offsetType): Type
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				isCallable(): TrinaryLogic
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				getCallableParametersAcceptors(ClassMemberAccessAnswerer $scope): ParametersAcceptor[]
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				isCloneable(): TrinaryLogic
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					static
					
				
			 | 
			
				__set_state(mixed[] $properties): Type
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				isInstanceOf(string $className): TrinaryLogic
	
	 
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				subtract(Type $type): Type
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				getTypeWithoutSubtractedType(): Type
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				changeSubtractedType(?Type $subtractedType): Type
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				getSubtractedType(): ?Type
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				traverse(callable $cb): Type
	
		Traverses inner types
	 
	
	Traverses inner types 
Returns a new instance with all inner types mapped through $cb. Might
return the same instance if inner types did not change. 
 
		Overriden by
		
		Implements
		
	 
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				getNakedClassReflection(): ?ClassReflection
	
	 
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				getClassReflection(): ?ClassReflection
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				getAncestorWithClassName(string $className): self|null
	
			 | 
		
			#
		 | 
	
	
			
				
					
	public
					
					
				
			 | 
			
				tryRemove(Type $typeToRemove): ?Type
	
		Return the difference with another type, or null if it cannot be represented.
	 
	
	Return the difference with another type, or null if it cannot be represented. 
 
		Overriden by
		
		Implements
		
	 
			 | 
		
			#
		 |