Skip to content
This repository was archived by the owner on Jan 12, 2024. It is now read-only.

Conversation

@yjt98765
Copy link
Contributor

This PR implements issue #1202, i.e., added an update rule that appends deprecated specialization declaration with a ... parameter.

To do so, I first modified the syntax tree definition of SpecializationGenerator.Provider. Previously, all the parameters are regarded as a Terminal without a detailed structure. Therefore, updating and formatting rules cannot be applied. For example, the extra space in controlled(q, ...) cannot be removed. Instead, I define Provider.parameters as specializationParameter tuple, which solves the problem.

Based on the previous definition, I implemented the rule. It updates the parameters based on the number and the text of existing parameters.

The code example used in the issue is added to Examples.fs as a test case.

Also update parsing, rewritting, and reducing rules.
This rule updates deprecated specialization declarations to add a `...`
parameter.
@yjt98765 yjt98765 reopened this Oct 28, 2021
@ScottCarda-MS ScottCarda-MS added the area: formatter Q# source code formatter label Oct 29, 2021
A new test case is added to demonstrate this type of updating.
Use `Some` with dataflow connection instead of function calling.
@ScottCarda-MS
Copy link
Contributor

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 2 pipeline(s).

Copy link
Contributor

@ScottCarda-MS ScottCarda-MS left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks great! Thanks for your contribution!

@ScottCarda-MS ScottCarda-MS enabled auto-merge (squash) November 3, 2021 18:35
@ScottCarda-MS ScottCarda-MS merged commit 8d9982d into microsoft:main Nov 3, 2021
@yjt98765 yjt98765 deleted the specialization branch November 4, 2021 00:51
cesarzc added a commit that referenced this pull request Nov 5, 2021
* added MSBuild_Logs to gitignore (#1171)

* Command Line Support for Project File Input (#1192)

* Change --inputs to --input (#1210)

* Deprecate new array expression (#956)

* Removing temporary project (#1225)

* Formatter Updates Deprecated Boolean Operator Syntax (#1214)

* Update the documentation found in the Q# Formatter Project (#1203)

* Formatter Updates Deprecated Specialization Declaration Parameters (#1226)

* Adding Sdk integration, and formatting support + code action for syntax updates to the language server (#1207)

Co-authored-by: Filip W <[email protected]>
Co-authored-by: Scott Carda <[email protected]>
Co-authored-by: Sarah Marshall <[email protected]>
Co-authored-by: bettinaheim <[email protected]>
Co-authored-by: Jintao YU <[email protected]>
cesarzc added a commit that referenced this pull request Nov 16, 2021
* added MSBuild_Logs to gitignore (#1171)

* Command Line Support for Project File Input (#1192)

* Change --inputs to --input (#1210)

* Deprecate new array expression (#956)

* Removing temporary project (#1225)

* Formatter Updates Deprecated Boolean Operator Syntax (#1214)

* Update the documentation found in the Q# Formatter Project (#1203)

* Formatter Updates Deprecated Specialization Declaration Parameters (#1226)

* Adding Sdk integration, and formatting support + code action for syntax updates to the language server (#1207)

* QAT v. 0.1 (#1230)

* Sdk changes to support Qir targets (#1238)

* Quantum Development Kit Telemetry Library (#1199)

Co-authored-by: Sarah Marshall <[email protected]>
Co-authored-by: Scott Carda <[email protected]>

* Allowing to use the LLVM intrinsic readcyclecounter from Q# (#1248)

* Do case-insensitive comparisons for targets names (#1241)

During the build stage of a Q# job submission via the CLI or the stand-alone executable, there is a case sensitive enforcement of target names.

Since this limitation does not exist in the service or in other clients, we're aligning by making the corresponding comparison case insensitive.

* Refactor language server code for extracting symbols from Q# fragments (#1220)

* Start adding SymbolOccurrence module

* Replace SymbolInformation implementation

* Add C# interop for SymbolOccurrence

* Rename SymbolInformation.cs to match class name

* Mark SymbolInformation as obsolete

* Add SymbolOccurrence.fsi

* Add doc comments

* Fix nullable errors with .NET Core 3.1

* Use as instead of is

* Take in fragment instead of file in SymbolOccurrence

* Update todo comments

* Return NS in open directive as UsedVariable

* Use TryGet for SymbolOccurrence C# API

* Statement Kinds Support (#1212)

* Addressing last comments - QAT v0.1 (#1240)

* Type renaming

* Removing redudant setModulePassManager

* Fixing recursion

* Refactoring filenames

* Renaming directory

* Updating names and files

* Formatting

* Fixing include

* Updates for QIR validation (#1250)

* Type renaming

* Removing redudant setModulePassManager

* Fixing recursion

* Refactoring filenames

* Renaming directory

* Updating names and files

* Formatting

* Changing default to interop friendly

* Updating base profile

* Styling

* Updating logger

* Fixing style

* Removing comment

* Moving testing to run before linting

* Updating CMake

* Attempting to solve tests issue

* Updating according to PR comments

* Complete NamespaceItem in qsfmt (#1239)

Co-authored-by: Filip W <[email protected]>
Co-authored-by: Scott Carda <[email protected]>
Co-authored-by: Sarah Marshall <[email protected]>
Co-authored-by: bettinaheim <[email protected]>
Co-authored-by: Jintao YU <[email protected]>
Co-authored-by: Troels F. Rønnow <[email protected]>
Co-authored-by: XField <[email protected]>
Co-authored-by: Ricardo Espinoza <[email protected]>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area: formatter Q# source code formatter

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants