This includes:
- Coercion fixes.
- Blank fields after adjusting the record/table type.
- Interpreter implementation was not handling Dataverse errors when
appending.
Bumps [Azure.Identity](https://github.com/Azure/azure-sdk-for-net) from
1.11.0 to 1.11.4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/Azure/azure-sdk-for-net/releases">Azure.Identity's
releases</a>.</em></p>
<blockquote>
<h2>Azure.Identity_1.11.4</h2>
<h2>1.11.4 (2024-06-10)</h2>
<h3>Bugs Fixed</h3>
<ul>
<li>Managed identity bug fixes</li>
</ul>
<h2>Azure.Identity_1.11.3</h2>
<h2>1.11.3 (2024-05-07)</h2>
<h3>Bugs Fixed</h3>
<ul>
<li>Fixed a regression in <code>DefaultAzureCredential</code> probe
request behavior for IMDS managed identity environments. <a
href="https://redirect.github.com/Azure/azure-sdk-for-net/issues/43796">#43796</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="2856f9a00d"><code>2856f9a</code></a>
changelog update</li>
<li><a
href="7267469fe0"><code>7267469</code></a>
Update azure-sdk-build-tools Repository Resource Refs in Yaml files (<a
href="https://redirect.github.com/Azure/azure-sdk-for-net/issues/43311">#43311</a>)</li>
<li><a
href="2db9a0f336"><code>2db9a0f</code></a>
AzureArcManagedIdentitySource fix</li>
<li><a
href="06dd672e59"><code>06dd672</code></a>
Hotfix for DAC probe request</li>
<li><a
href="ae13ec206b"><code>ae13ec2</code></a>
Fix ConfidentialClient's AcquireTokenSilent and AcquireTokenOnBehalfOf
claims...</li>
<li><a
href="1835c8f1b3"><code>1835c8f</code></a>
Sync .github/workflows directory with azure-sdk-tools for PR 8131 (<a
href="https://redirect.github.com/Azure/azure-sdk-for-net/issues/43535">#43535</a>)</li>
<li><a
href="40ff95af85"><code>40ff95a</code></a>
prep release (<a
href="https://redirect.github.com/Azure/azure-sdk-for-net/issues/43534">#43534</a>)</li>
<li><a
href="70f5c48011"><code>70f5c48</code></a>
[AzureMonitorDistro] Add LiveMetricsActivityProcessor only when live
metrics ...</li>
<li><a
href="a6c3e5957f"><code>a6c3e59</code></a>
Respect SupportsOrdering property (<a
href="https://redirect.github.com/Azure/azure-sdk-for-net/issues/43531">#43531</a>)</li>
<li><a
href="82cc7cf188"><code>82cc7cf</code></a>
WCF Client/CoreWCF extension packages to use Azure Queue Storage as
transport...</li>
<li>Additional commits viewable in <a
href="https://github.com/Azure/azure-sdk-for-net/compare/Azure.Identity_1.11.0...Azure.Identity_1.11.4">compare
view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=Azure.Identity&package-manager=nuget&previous-version=1.11.0&new-version=1.11.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/microsoft/Power-Fx/network/alerts).
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Mike Stall <mikestall@hotmail.com>
This is a rebased version of
https://github.com/microsoft/Power-Fx/pull/2122, with all comments
addressed.
---------
Co-authored-by: Greg Lindhorst <gregli@microsoft.com>
Co-authored-by: Mike Stall <mikestall@hotmail.com>
Add helper for creating SymbolValues from CheckResults.
This is tricky since it needs to include whatever symbolVAlues the
checkresult already has. So Check.Symbols.CreateValues() may miss those
and end up creating duplicate symbol values.
Also add more tests
---------
Co-authored-by: jas-valgotar <jasvalgotar@microsoft.com>
Adds support for deep mutation through the Set function. `Set( a, {b:1}
)` doesn't change and will assign a reference to the record `{b:1}` to
the variable `a`. After `a` has been established, it now supports
mutation through `Set( a.b, 2 )`. This is an optional facility that is
disabled by default and there are no semantic changes. When creating
variables the host has the option to enable this with
`SymbolProperties.CanSetMutate`.
This also fixes two related bugs. First, really deep mutations were not
being properly copied on write, where `t` should be unaffected by the
Patch https://github.com/microsoft/Power-Fx/issues/2450:
```
>> Set( deep, [[[[1,2,3],[4,5,6]]]] )
deep: [[[[1, 2, 3], [4, 5, 6]]]]
>> Set( t, deep )
t: [[[[1, 2, 3], [4, 5, 6]]]]
>> Patch( First(First(First(deep).Value).Value).Value, {Value:2}, {Value:99} )
{Value:99}
>> deep
[[[[1, 99, 3], [4, 5, 6]]]]
>> t
[[[[1, 99, 3], [4, 5, 6]]]]
```
And this should not return a casting error, instead returning Blank()
https://github.com/microsoft/Power-Fx/issues/2451:
```
>> Patch(Blank(),Blank(),Blank())
Unable to cast object of type 'Microsoft.PowerFx.Types.BlankType' to type 'Microsoft.PowerFx.Types.RecordType'.
```
As we plan to support complex types from Datasource in UDFs, we want to
handle recursively defined Entity types in UDFs.
We do not need to check for restricted types in DataEntity and metadata
types that have expandinfo.
This is useful in a situation when the output type is dynamic and is not
available in the swagger
---------
Co-authored-by: Mike Stall <mikestall@hotmail.com>
Fixes a bug in Canvas apps coercing an option set value to number. There
were missing checks for pre-V1 semantics in DType.cs.
But this bug, along with the other recent fixes, is because we were not
testing with actual option sets, instead relying on enums since those
can be built for all the backing kinds. In general, enums and option
sets aren't that different in V1, but they are very different in pre-V1
which is what Canvas uses today. This has been corrected in this PR. We
now run tests with the test enums registered as option sets instead,
mimicing the semantics in Canvas for Dataverse number and Boolean option
sets. These new typed option sets are not exposed generally, as we
should look at that implementation more closely, today it translates
between string values more than it needs to.
By doing this testing, another bug was found in the interpeter, where we
weren't back converting boolean values to the option set, for example in
`Text( If( false, OptionSet.Value, true ) )`. C# now has the same
semantics as Canvas for Booleans. Number and other backing kinds may
also want this behavior long term, but since those aren't yet supported
we have time to decide how to handle that scenario. Without any changes,
a `CalculatedOptionSetValue` will be returned for the label if coerced
to a string, but the value itself will be correct.
We need partial parse invalid UDF definitions for Intellisense to
suggest options, This PR adds logic to return parse invalid UDF IRs
which can be used by Intellisense .
This pr does two things at a high level
1) Interprets a cancellation error on a lsp request more clearly and
returns a specific error code as specified the lsp protocol.
2) Fixes a very small semantic tokens bug that i introduced during lsp
refactoring
Since we use generic expression parser for parsing type expression
within type literal node, we consider an expression like `Type(5+5)` to
be parsevalid.
This PR
1. Adds a validator to allow only valid type expressions.
2. Simplifies `DTypeVisitor` to use `DefaultVisitor`
3. overrides exception when visiting `Type(Type(..))`
4. Adds TexlPretty for `TypeLiteralNode` to enable ToString.
Updates error to "The '.' operator cannot be used on <TypeName> values"
The error shows up in the case of
"the thing on the left of “.” is a number/string/other thing you can’t
use “.” on ever, excluding polymorphic because it's weird"
Addresses customer reported bug in pre-V1 where option set value =
Blank() resulted in an error. General remedy is to return the pre-V1
code to its original state and have a large if around V1 vs. pre-V1
code. And more tests.