Граф коммитов

1130 Коммитов

Автор SHA1 Сообщение Дата
Morten Nielsen d6b7e97386
Update AnalyzerReleases.Shipped.md (#1868) 2024-11-12 13:30:21 -08:00
Manodasan Wignarajah 8649ee3eeb
Fix scenario where source generator isn't detecting parameters passed to WinRT mapped interfaces (#1867)
* Fix scenario where source generator isn't detecting parameters passed to WinRT mapped interfaces

* Add another test case
2024-11-10 16:54:30 -08:00
Manodasan Wignarajah 58c60a9b96
Replace null pointer function pointer call with helpful exception. (#1866)
* Replace null pointer function pointer call with helpful exception.

* Fix typos, make exception messages consistent

* Tweak JIT conditions and helpers for better trimming

* Same tweak to 'code_writers.h'

---------

Co-authored-by: Sergio Pedri <sergio0694@live.com>
2024-11-10 16:51:58 -08:00
Dongle 93482af78d
Exclude GuidAttribute from WinMD. (#1855)
Co-authored-by: Manodasan Wignarajah <mawign@microsoft.com>
2024-11-08 19:46:07 -08:00
Sergio Pedri 2563a1fe19
Add 'WinRTManagedOnlyTypeDetails' type (#1815)
* Add 'WinRTManagedOnlyTypeDetails' type

* Throw from runtime class name class too

* Update all generators to ignore managed only types

* Optimize 'IsManagedOnlyType'

* Update API compat/ref, fix build errors

* Remove checks in 'TypeNameSupport'

* Add functional tests for 'WinRTManagedOnlyTypeDetails'
2024-11-08 16:35:18 -08:00
Manodasan Wignarajah 3740e12a88
Fix exception propagation (#1856)
* Fix ObjectDisposedException and add tests for exception propagation

* Move type

* Fix ref count

* Fix build

* Fix exception propgation

* Fix exception progation (validing dumps with new build)

* Remove logic that tried to avoid cycles

* Add try catch

* Avoid allocations

* PR feedback
2024-11-08 12:34:16 -08:00
Sergio Pedri cdfca8997d
Bump Mono.Cecil to 0.11.6 (#1862) 2024-11-07 20:20:16 -08:00
Manodasan Wignarajah 71671e1e36
Add OptIn mode for source generator (#1861)
* Add an opt-in mode to the source generator and come up with a new default based on project

* Add default check

* Add missing file

* Update version

* Update version

* Update code fixer to look at opt-in mode

* Check aot warning level as a enablement for generator

* Update API compat baseline

* Increment for initial testing

* Fix default and enable auto mode for projections

* Scope to NET 6 and later

* Add tests

* Fix

* Another fix

* Fix diagnostic not coming

* Remove check for trim analyzer as it can be disabled independently of trimming

* Update version to reflect API additons

* Add docs and fix API compat

* Update docs

* Update docs/aot-trimming.md

Co-authored-by: Sergio Pedri <sergio0694@live.com>

* Address feedback

* Remove extra package

---------

Co-authored-by: Sergio Pedri <sergio0694@live.com>
2024-11-07 20:19:34 -08:00
Sergio Pedri a6921f2cfb
Support [GeneratedBindableCustomProperty] on structs and records (#1854)
* Enable ICPP generator on records/structs

* Add unit test

* Add more types to authoring tests

* Add test for record type

* Add factory test with internal type

* Fix build error

* Fix 'ClassDeclarationSyntax' invalid cast

* Update generator to account for structs and records

* Skip attribute in generated .winmd files

* Fix build and unit test

* Fix authoring unit tests

* Actually fix authoring unit tests

* Update AuthoringConsumptionTest.exe.manifest
2024-10-30 16:38:47 -07:00
Sergio Pedri 0ca5cd65e3
Improve ICPP exception messages (#1857)
* Improve ICPP exception messages

* Fix typo

Co-authored-by: Manodasan Wignarajah <mawign@microsoft.com>

---------

Co-authored-by: Manodasan Wignarajah <mawign@microsoft.com>
2024-10-29 21:36:10 -07:00
Sergio Pedri 0966edb395
Special case internal 'ReadOnlyList' type (#1847)
* Special case internal 'ReadOnlyList' type

* Bump patch version to 7
2024-10-28 15:20:45 -07:00
Manodasan Wignarajah 9a519161ee
Add GC.KeepAlive when doing ABI call (#1848)
* Try running with GC stress

* Also disable

* Add GC keep alive

* Remove optional

* Add KeepAlive

* Keep alive

* Try increasing timeout to see if it is just taking longer to launch

* Diagnose test issue

* Try to fix test

* Update timeouts

* Increase timeout

* Try one more fix
2024-10-28 15:16:15 -07:00
Sergio Pedri 89c9552893
Add 'CsWinRTDynamicallyInterfaceCastableExclusiveTo' (#1835)
* Add 'CsWinRTDynamicallyInterfaceCastableExclusiveTo'

* Support 'idic_exclusiveto' in code writer

* Add new parameter to 'CsWinRTParams'

* Fix IDIC generation, skip CCW vtable generation

* Fix CCW codegen for non IDIC scenarios

* Fix illegal break in code writer

* Apply suggestions from code review

Co-authored-by: Manodasan Wignarajah <mawign@microsoft.com>

---------

Co-authored-by: Manodasan Wignarajah <mawign@microsoft.com>
2024-10-25 15:33:00 -07:00
Sergio Pedri 43e8172ebc
Support explicitly implementing 'ICustomPropertyProvider' (#1841)
* Support user implemented 'ICPP'

* Add unit test for custom 'ICPP'

* Add 'Microsoft.UI.Xaml.Data.h' to 'pch.h'

* Unbox property value before comparison
2024-10-24 00:26:41 -07:00
0x5BFA 32b3f17cfb
Updated issue templates with Issue Form (#1842)
* Update and rename bug_report.md to bug_report.yml

* Update bug_report.yml

* Update and rename feature_request.md to feature_request.yml

* Update feature_request.yml

* Update bug_report.yml

* Update bug_report.yml
2024-10-23 16:11:49 -07:00
Sergio Pedri 13ea06ce8a
Minor improvements to 'ExceptionHelpers.SetErrorInfo' (#1824)
* Use HSTRING reference

* Skip managed object reference allocation

* Fix HSTRING_HEADER parameter
2024-10-21 20:50:14 -07:00
Sergio Pedri 7c85a8d03d
Fix 'CsWinRT1028' for generated 'EventSource' (#1840) 2024-10-21 20:48:25 -07:00
Manodasan Wignarajah 445b4f6511
Fix exception when using funcs and take another approach to escape assembly name (#1836) 2024-10-17 21:08:34 -07:00
Dongle 578f892727
Fix types in attributes being projected as System.Type in WinMD. (#1829) 2024-10-16 18:02:23 -07:00
Sergio Pedri 69ef4176b7
Add null checks to some 'Marshal.Release' calls (#1832) 2024-10-16 17:59:34 -07:00
Sergio Pedri 0a18c1f5dd
Skip QI and 'IObjectReference' allocation in IDIC fallback (#1833) 2024-10-16 17:54:58 -07:00
Sergio Pedri 938d95f6ff
Improve exception messages for failed casts (#1826) 2024-10-15 01:08:02 -07:00
Dongle ce2ef94d5c
Fix enum attribute argument. (#1827)
* Fix enum attribute argument.

* Update src/Authoring/WinRT.SourceGenerator/WinRTTypeWriter.cs

Co-authored-by: Sergio Pedri <sergio0694@live.com>

---------

Co-authored-by: Sergio Pedri <sergio0694@live.com>
2024-10-15 00:53:18 -07:00
Manodasan Wignarajah 3478372c55
Update CsWinRT-Variables.yml (#1823) 2024-10-13 16:46:25 -07:00
Manodasan Wignarajah db00a61ddd
Reuse generated code when possible (#1821)
* Initialize size improvements

* Also optimize ccw

* Fix build

* Add comments and renaming
2024-10-13 16:46:06 -07:00
Manodasan Wignarajah eb67781cec
Fix couple issues (#1820)
* Fixes for various issues

* Fix nullable scenarios

* Ensure trailing slash

* Add another test
2024-10-12 20:27:08 -07:00
Sergio Pedri 848212447d
Don't emit default ctor for non activatable types (#1817)
* Don't emit default ctor for non activatable types

* Add test for non activatable type

* Add more unit tests

* Remove 'NonActivatableType' test

* Add one more test case
2024-10-10 19:52:29 -07:00
Manodasan Wignarajah 7578691c9e
Add fallback code for managed vtables for skia scenarios (#1819) 2024-10-10 16:50:08 -07:00
Manodasan Wignarajah 45a9e87762
For CsWinRT component support, if a old version of CsWinRT is referenced but new source generator is used, don't generate the new sources (#1818) 2024-10-10 15:10:42 -07:00
Manodasan Wignarajah ec94cc7bb6
Fixing multiple type definition issue and fixing NotifyCollectionChangedAction issue (#1816)
* Detect if a type is defined in mutliple places so that we can avoid a compiler error in the fallback generator

* Fix NotifyCollectionChangedAction not marked as blittable or a value type

* Fix RCW fallback source generator when there are multiple definitions for the same type in references.

* Undo rename
2024-10-10 11:49:34 -07:00
Manodasan Wignarajah 4bc7bfd261
Improve performance of source generator (#1804)
* Try to improve generator performance by checking properties earlier and checking WinRT.Runtime reference

* Handle embedded support

* Scope to when lookup generation is enabled

* Undo check for WinRT.Runtime reference

* Minor reordering update to improve caching potentially and static

* Add missed file

* Remove unused namespace
2024-10-08 17:34:21 -07:00
Manodasan Wignarajah ad5cc38488
Escape a couple more special characters (#1807)
* Add more special characters for escaping

* One more special character
2024-10-02 21:34:48 -07:00
Manodasan Wignarajah 60e11829f9
Fix build pipeline failure with autobaselining (#1806) 2024-10-02 11:27:01 -07:00
Johan Laanstra 2e56fca49d
ToArray fails when buffer capacity is larger than its length. (#1805)
* Add failing test for ToArray.

* Add missing Slice call to limit length of span to count.

* Add another test.
2024-09-30 17:19:48 -07:00
Manodasan Wignarajah 3c1ba7f770
Update version (#1803) 2024-09-28 21:32:54 -07:00
Manodasan Wignarajah 3e1724e0f3
Fix IsPartial check and escaping of assembly name (#1802)
* Fix scenarios where the parent type isn't partial

* Fix partial for bindablecustomproperty scenarios too

* Escape dashes in assembly name

* Escape @

* Remove namespace
2024-09-28 21:12:02 -07:00
Dongle 037f6aedf2
Add explicit GUID support for delegates and non-synthesized interfaces. (#1792)
* Add explicit GUID support for delegates and non-synthesized interfaces.

* Add wrapper method for GUID attribute

* Fix variable name mismatch.

* Add tests (untested)

* Fix indentation

* Fix typo

* Add GUID test class for regfree WinRT

---------

Co-authored-by: Sergio Pedri <sergio0694@live.com>
2024-09-18 15:51:15 -07:00
Manodasan Wignarajah b55ca83f3c
Fix ordering of targets impacting WPF scenarios (#1738) 2024-09-09 18:30:39 -07:00
Manodasan Wignarajah 7b7b412d3f
Detect when property expressions are used. (#1737) 2024-09-07 14:21:55 -07:00
Manodasan Wignarajah 3ee0ef2e4f
Fix GetEnumerator when C# enumerator gets passed to native and back (#1735)
* Fix GetEnumerator when C# enumerator gets passed to native and back and add tests

* Fix spacing

* Update version

* Fix projected enumerator scenario

* Fix iterator mapping
2024-09-07 14:20:51 -07:00
Manodasan Wignarajah 34d8d54cd2
Fix issue in WPF scenarios where our source generator was getting included twice. (#1731) 2024-09-05 01:14:58 -07:00
Manodasan Wignarajah c109e10360
Fix source generator issues (#1732)
* Fix instantiations of generic classes not being put of lookup table

* Fix check for WinRT classes

* Add more scenarios for unsafe diagnostics

* Fix sln

* Fix build

* Fix issue in WPF scenarios where our source generator was getting included twice.

* Revert "Fix issue in WPF scenarios where our source generator was getting included twice."

This reverts commit 7d3ee3346f.

* Move to debug as intended
2024-09-04 23:54:58 -07:00
Steve 5ad543d507
Treat initonly properties as cannot write (#1730) 2024-09-03 17:18:09 -07:00
Manodasan Wignarajah 465773913c
Add NuGet.config (#1728)
* Update nuget.config

* Remove restore sources

* Authenticate

* Fix runtimeidentifier warning

* Update VCRT forwarders
2024-08-29 17:55:08 -07:00
Manodasan Wignarajah ad6c15a97a
Update docs (#1723)
* Update docs

* Rename

* Make table

* Fix

* Fix

* Fix again

* Update

* Update versions

* Line break

* Make version consistent

* Update with exception note
2024-08-26 13:39:39 -07:00
Manodasan Wignarajah 98122be462
Fix diagnostic rule to be warning and not error (#1711)
* Fix rule to be warning and not error

* Update URL
2024-08-07 13:47:10 -07:00
Manodasan Wignarajah eebf9ae909
Make generator compatible with older version of projections (#1710)
* Make generator compatible with older version of projections

* Increment version
2024-08-07 09:06:51 -07:00
Manodasan Wignarajah aeaaf0c45f
Merge pull request #1708 from microsoft/staging/AOT
Merge AOT changes to master
2024-08-06 02:23:34 -07:00
Sergio Pedri c7b2929734
Add 'Windows.UI.Xaml.*' exception types (#1705)
* Add 'Windows.UI.Xaml' exception types

* Add WUX exceptions unit tests

* Remove WUX exception types downlevel

* Fix test

---------

Co-authored-by: Manodasan Wignarajah <mawign@microsoft.com>
2024-08-05 23:15:40 -07:00
Sergio Pedri b9fb45deee
Add some more missing 'readonly' modifiers (#1707) 2024-08-05 23:09:29 -07:00