Skip to content
This repository has been archived by the owner on Jun 20, 2024. It is now read-only.
This repository has been archived by the owner on Jun 20, 2024. It is now read-only.

[net8 preview 2] dotnet new command never finishes for unknown parameter condition evaluation #723

Closed

Description

dotnet new command never finishes and seems to fall in an infinite loop during parameter condition evaluation with net8 preview 2.
The same template works properly with latest net7 builds.

Steps to repro

  • Install .NET 8 Preview 2
  • dotnet new install Uno.Templates
  • dotnet new unoapp -o testapp

The command fails to finish and is stuck in the following expression (original template source):

		this	Cannot obtain value of the local variable or argument because it is not available at this instruction pointer, possibly because it has been optimized away.	Microsoft.TemplateEngine.Orchestrator.RunnableProjects.Macros.EvaluateMacro
+		environmentSettings	{Microsoft.TemplateEngine.Edge.EngineEnvironmentSettings}	Microsoft.TemplateEngine.Abstractions.IEngineEnvironmentSettings {Microsoft.TemplateEngine.Edge.EngineEnvironmentSettings}
+		variableCollection	{Microsoft.TemplateEngine.Orchestrator.RunnableProjects.ParameterBasedVariableCollection}	Microsoft.TemplateEngine.Abstractions.IVariableCollection {Microsoft.TemplateEngine.Orchestrator.RunnableProjects.ParameterBasedVariableCollection}
-		config	{Microsoft.TemplateEngine.Orchestrator.RunnableProjects.Macros.EvaluateMacroConfig}	Microsoft.TemplateEngine.Orchestrator.RunnableProjects.Macros.EvaluateMacroConfig
		Type	"evaluate"	string
		VariableName	"useFrameNav"	string
+		Static members		
-		Non-Public members		
		Condition	"!useDependencyInjection || navigationEvaluator == 'blank'"	string
		DataType	"bool"	string
+		Evaluator	{Method = {Boolean EvaluateFromString(Microsoft.Extensions.Logging.ILogger, System.String, Microsoft.TemplateEngine.Abstractions.IVariableCollection)}}	Microsoft.TemplateEngine.Orchestrator.RunnableProjects.ConditionStringEvaluator
+		Macro	{Microsoft.TemplateEngine.Orchestrator.RunnableProjects.Macros.EvaluateMacro}	Microsoft.TemplateEngine.Orchestrator.RunnableProjects.Macros.EvaluateMacro

At the following stack:

 	Microsoft.TemplateEngine.Core.dll!Microsoft.TemplateEngine.Core.Expressions.ScopeBuilder<Microsoft.TemplateEngine.Core.Expressions.Operators, Microsoft.TemplateEngine.Core.Expressions.Cpp2.Cpp2StyleEvaluatorDefinition.Tokens>.Build(ref int bufferLength, ref int bufferPosition, System.Action<System.Collections.Generic.IReadOnlyList<byte>> onFault, System.Collections.Generic.HashSet<string> referencedVariablesKeys)	Unknown
 	Microsoft.TemplateEngine.Core.dll!Microsoft.TemplateEngine.Core.Expressions.Shared.SharedEvaluatorDefinition<Microsoft.TemplateEngine.Core.Expressions.Cpp2.Cpp2StyleEvaluatorDefinition, Microsoft.TemplateEngine.Core.Expressions.Cpp2.Cpp2StyleEvaluatorDefinition.Tokens>.Evaluate(Microsoft.TemplateEngine.Core.Contracts.IProcessorState processor, ref int bufferLength, ref int currentBufferPosition, out string faultedMessage, System.Collections.Generic.HashSet<string> referencedVariablesKeys, bool shouldProcessWholeBuffer)	Unknown
 	Microsoft.TemplateEngine.Core.dll!Microsoft.TemplateEngine.Core.Expressions.Shared.SharedEvaluatorDefinition<Microsoft.TemplateEngine.Core.Expressions.Cpp2.Cpp2StyleEvaluatorDefinition, Microsoft.TemplateEngine.Core.Expressions.Cpp2.Cpp2StyleEvaluatorDefinition.Tokens>.EvaluateFromString(Microsoft.Extensions.Logging.ILogger logger, string text, Microsoft.TemplateEngine.Abstractions.IVariableCollection variables, out string faultedMessage, System.Collections.Generic.HashSet<string> referencedVariablesKeys)	Unknown
 	Microsoft.TemplateEngine.Core.dll!Microsoft.TemplateEngine.Core.Expressions.Shared.SharedEvaluatorDefinition<Microsoft.TemplateEngine.Core.Expressions.Cpp2.Cpp2StyleEvaluatorDefinition, Microsoft.TemplateEngine.Core.Expressions.Cpp2.Cpp2StyleEvaluatorDefinition.Tokens>.EvaluateFromString(Microsoft.Extensions.Logging.ILogger logger, string text, Microsoft.TemplateEngine.Abstractions.IVariableCollection variables)	Unknown
>	Microsoft.TemplateEngine.Orchestrator.RunnableProjects.dll!Microsoft.TemplateEngine.Orchestrator.RunnableProjects.Macros.EvaluateMacro.Evaluate(Microsoft.TemplateEngine.Abstractions.IEngineEnvironmentSettings environmentSettings, Microsoft.TemplateEngine.Abstractions.IVariableCollection variableCollection, Microsoft.TemplateEngine.Orchestrator.RunnableProjects.Macros.EvaluateMacroConfig config)	Unknown
 	Microsoft.TemplateEngine.Orchestrator.RunnableProjects.dll!Microsoft.TemplateEngine.Orchestrator.RunnableProjects.Macros.BaseMacroConfig<Microsoft.TemplateEngine.Orchestrator.RunnableProjects.Macros.EvaluateMacro, Microsoft.TemplateEngine.Orchestrator.RunnableProjects.Macros.EvaluateMacroConfig>.Evaluate(Microsoft.TemplateEngine.Abstractions.IEngineEnvironmentSettings environmentSettings, Microsoft.TemplateEngine.Abstractions.IVariableCollection vars)	Unknown
 	Microsoft.TemplateEngine.Orchestrator.RunnableProjects.dll!Microsoft.TemplateEngine.Orchestrator.RunnableProjects.MacroProcessor.ProcessMacros(Microsoft.TemplateEngine.Abstractions.IEngineEnvironmentSettings environmentSettings, Microsoft.TemplateEngine.Orchestrator.RunnableProjects.GlobalRunConfig runConfig, Microsoft.TemplateEngine.Abstractions.IVariableCollection variables)	Unknown
 	Microsoft.TemplateEngine.Orchestrator.RunnableProjects.dll!Microsoft.TemplateEngine.Orchestrator.RunnableProjects.RunnableProjectGenerator.Microsoft.TemplateEngine.Abstractions.IGenerator.GetCreationEffectsAsync(Microsoft.TemplateEngine.Abstractions.IEngineEnvironmentSettings environmentSettings, Microsoft.TemplateEngine.Abstractions.ITemplate templateData, Microsoft.TemplateEngine.Abstractions.Parameters.IParameterSetData parameters, string targetDirectory, System.Threading.CancellationToken cancellationToken)	Unknown
 	Microsoft.TemplateEngine.Edge.dll!Microsoft.TemplateEngine.Edge.Template.TemplateCreator.InstantiateAsync(Microsoft.TemplateEngine.Abstractions.ITemplateInfo templateInfo, string name, string fallbackName, string outputPath, Microsoft.TemplateEngine.Edge.Template.InputDataSet inputParameters, bool forceCreation, string baselineName, bool dryRun, System.Threading.CancellationToken cancellationToken)	Unknown
 	Microsoft.TemplateEngine.Cli.dll!Microsoft.TemplateEngine.Cli.TemplateInvoker.CreateTemplateAsync(Microsoft.TemplateEngine.Cli.Commands.TemplateCommandArgs templateArgs, System.Threading.CancellationToken cancellationToken)	Unknown
 	Microsoft.TemplateEngine.Cli.dll!Microsoft.TemplateEngine.Cli.TemplateInvoker.InvokeTemplateAsync(Microsoft.TemplateEngine.Cli.Commands.TemplateCommandArgs templateArgs, System.Threading.CancellationToken cancellationToken)	Unknown
 	Microsoft.TemplateEngine.Cli.dll!Microsoft.TemplateEngine.Cli.Commands.TemplateCommand.InvokeAsync(System.CommandLine.ParseResult parseResult, System.Threading.CancellationToken cancellationToken)	Unknown
 	Microsoft.TemplateEngine.Cli.dll!Microsoft.TemplateEngine.Cli.Commands.InstantiateCommand.HandleTemplateInstantationAsync(Microsoft.TemplateEngine.Cli.Commands.InstantiateCommandArgs args, Microsoft.TemplateEngine.Abstractions.IEngineEnvironmentSettings environmentSettings, Microsoft.TemplateEngine.Edge.Settings.TemplatePackageManager templatePackageManager, Microsoft.TemplateEngine.Cli.TemplateGroup templateGroup, System.Threading.CancellationToken cancellationToken)	Unknown
 	Microsoft.TemplateEngine.Cli.dll!Microsoft.TemplateEngine.Cli.Commands.InstantiateCommand.ExecuteIntAsync(Microsoft.TemplateEngine.Cli.Commands.InstantiateCommandArgs instantiateArgs, Microsoft.TemplateEngine.Abstractions.IEngineEnvironmentSettings environmentSettings, Microsoft.TemplateEngine.Edge.Settings.TemplatePackageManager templatePackageManager, System.CommandLine.Invocation.InvocationContext context)	Unknown
 	Microsoft.TemplateEngine.Cli.dll!Microsoft.TemplateEngine.Cli.Commands.BaseCommand<Microsoft.TemplateEngine.Cli.Commands.NewCommandArgs>.InvokeAsync(System.CommandLine.Invocation.InvocationContext context)	Unknown
 	Microsoft.TemplateEngine.Cli.dll!Microsoft.TemplateEngine.Cli.Commands.BaseCommand<System.__Canon>.Invoke(System.CommandLine.Invocation.InvocationContext context)	Unknown
 	System.CommandLine.dll!System.CommandLine.Invocation.InvocationPipeline.BuildInvocationChain.AnonymousMethod__0(System.CommandLine.Invocation.InvocationContext invocationContext, System.Func<System.CommandLine.Invocation.InvocationContext, System.Threading.Tasks.Task> _)	Unknown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions