Scope explicitly reviewed ref-struct constructor formal parameters
ProprietaryAdd scoped only to explicitly selected in/ref formal AST declarations under a resolved ref struct, with exact complete typed signatures, source seal and unique ownership across the supplied source set. Retain original null or bound constructor descriptors; never infer constructor binding or arbitrary escape safety. Standalone default-off operation.
OpenRewrite. Recipes. CSharp. Migration. Dotnet. Net7. ScopeReviewedConstructorParametersRequired
Exact repository-relative forward-slash path. No globs.
64 hex digits: SHA256 of UTF8 CSharpPrinter<int>.Print(unit), without an encoding preamble. Preserve all printed characters and line endings; no BOM stripping, normalization or markup removal. Seal the reviewed input before any operation in this recipe.
JSON array of {declaringType,parameters:[{name,type,mode,scope}]}. Include EVERY formal in order. Fully qualified SDK type keys use $ for nesting, <...> for type arguments, primitives use SDK keywords; modes value/in/ref. scope=true only on in/ref. All selections apply atomically to the sealed file.
Optional
Confirm C#11+ in ALL builds and callers; review these exact bodies, unsafe forwarding, public ScopedRef/ref-safety metadata, deployment and consumer compatibility. No arbitrary-body non-escape or binary equivalence guarantee. Default false.
mod run . --recipe= OpenRewrite. Recipes. CSharp. Migration. Dotnet. Net7. ScopeReviewedConstructorParameters \
-P ExactSourcePath= '<ExactSourcePath>' \
-P ExpectedPrintedSourceSha256= '<ExpectedPrintedSourceSha256>' \
-P ConstructorSelections= '<ConstructorSelections>'Required options ExactSourcePath, ExpectedPrintedSourceSha256, ConstructorSelections have no example to run with. Fill them in above.
Install it once, then run it on every repository under the current directory. New to the Moderne CLI? Set it up.