| ⇢ | A | TransientMetadataCollection added | |
| ⇢ | A | AnnotationMetadataBuilder added | |
| ⇢ | A | AnnotationTarget added | |
| ⇢ | A | InvalidAnnotationTarget added | |
| ⇢ | A | ConstantBooleanType added | |
| ⇢ | A | CompositeTypeRequiresAtLeastTwoSubTypes added | |
| ⇢ | A | NullType added | |
| ⇢ | A | InternalAnnotations added | |
| ⇢ | A | ConstantStringType added | |
| ⇢ | A | PropertyMetadataBuilder added | |
| ⋮ | view more | ||
| A | ↛ | TypeVisitor removed | |
| A | ↛ | ListType removed | |
| A | ↛ | IntegerType removed | |
| A | ↛ | StringType removed | |
| A | ↛ | Nodes removed | |
| A | ↛ | FloatType removed | |
| A | ↛ | MapType removed | |
| A | ↛ | NullType removed | |
| A | ↛ | NativeTypeParser removed | |
| A | ↛ | MapType removed | |
| ⋮ | view more | ||
| ⇢ | B | DocParser::createTypeFromName() added | |
| ⇢ | A | InternalAnnotations::createMetadata() added | |
| ⇢ | A | ArrayType::validate() added | |
| ⇢ | A | AnnotationMetadata::__construct() added | |
| ⇢ | A | TooManyDefaultProperties::new() added | |
| ⇢ | A | AnnotationTarget::describe() added | |
| ⇢ | A | AnnotationMetadata::getProperties() added | |
| ⇢ | A | PropertyMetadataBuilder::withBeingDefault() added | |
| ⇢ | A | AnnotationTarget::targetsProperty() added | |
| ⇢ | A | PropertyMetadata::isRequired() added | |
| ⋮ | view more | ||
| B | ↗ | A | DocParser::collectAttributeTypeMetadata() improved |
| C | ↘ | F | DocParser::collectAnnotationMetadata() got worse |
| D | ↛ | TypeVisitor::visit() removed | |
| C | ↛ | PHPStanTypeParser::resolveIdentifierNode() removed | |
| B | ↛ | PHPStanTypeParser::resolveType() removed | |
| A | ↛ | ListType::validate() removed | |
| A | ↛ | MapType::validate() removed | |
| A | ↛ | PHPStanTypeParser::resolveGenericNode() removed | |
| A | ↛ | PHPStanTypeParser::__construct() removed | |
| A | ↛ | MapType::describe() removed | |
| A | ↛ | ListType::getValue() removed | |
| A | ↛ | PHPStanTypeParser::parsePropertyType() removed | |
| ⋮ | view more | ||