You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We have released Metalama 2024.2.20, based on 2024.2.19 and 2024.1.26 plus the following changes:
Improved
Most interfaces derived from IDeclaration (e.g. IField, IMethod, ...) now have a strongly-typed IRef method.
IRef<T> now has an As<TOut>() method to up-type the reference.
ExpressionFactory enhancements: Null and Default methods.
New method IAttributeCollection.GetConstructedAttributesOfType<T>(): T
New extension methods ICompilation.GetDeclarationsWithAttribute()
New extension methods IAspectReceiver<ICompilation>.SelectDeclarationsWithAttribute() and IValidatorReceiver<ICompilation>.SelectDeclarationsWithAttribute() for use in fabrics.
New extension methods IAttribute.GetArgumentValue() and IAttribute.GetArgumentValue() to easily get arguments by name
When a TypedConstant represents an array, the Value property now returns the "user" array, e.g. int[] or object[], instead of an ImmutableArray<TypedConstant>.
Ease the severity of some errors in logs to warnings.
Breaking Changes
The behavior ofTypedConstant.Value for arrays has changed. The RawValue property gives the original value.
Fixed
Design-time: changing aspect configuration with assembly-level attribute does not seem to invalidate the cache.
Exception popup: InvalidCastException in TemplatingCodeValidator on incomplete class.
Design-time: generated file is not removed after original file is.
Null reference exception at design-time for incomplete property.
Design-time argument exception from code lens.
Design-time: using transitive validators across multiple Metalama versions causes an exception.
CodeLens reporting empty "-" results after changing the active configuration.
Cannot write to a closed file in SourceTransformer.Execute.
Design-time: Validators for constructors are ignored.
Design-time: Transitive reference validators are not evaluated across Metalama versions.
SerializableDeclarationId does not represent array types properly.
Design-time: InvalidOperationException when accessing Count property of a default ImmutableArray.
DesignTime: The old compilation is no longer alive.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
We have released Metalama 2024.2.20, based on 2024.2.19 and 2024.1.26 plus the following changes:
Improved
IDeclaration
(e.g.IField
,IMethod
, ...) now have a strongly-typedIRef
method.IRef<T>
now has anAs<TOut>()
method to up-type the reference.Null
andDefault
methods.IAttributeCollection.GetConstructedAttributesOfType<T>(): T
ICompilation.GetDeclarationsWithAttribute()
IAspectReceiver<ICompilation>.SelectDeclarationsWithAttribute()
andIValidatorReceiver<ICompilation>.SelectDeclarationsWithAttribute()
for use in fabrics.IAttribute.GetArgumentValue()
andIAttribute.GetArgumentValue()
to easily get arguments by nameTypedConstant
implementsIEquatable<TypedConstant>
.TypedConstant
represents an array, theValue
property now returns the "user" array, e.g.int[]
orobject[]
, instead of anImmutableArray<TypedConstant>
.Breaking Changes
TypedConstant.Value
for arrays has changed. TheRawValue
property gives the original value.Fixed
Beta Was this translation helpful? Give feedback.
All reactions