@alloy-js/csharp 0.20.0-dev.1 → 0.20.0-dev.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/components/Declaration.d.ts +2 -2
- package/dist/src/components/Declaration.d.ts.map +1 -1
- package/dist/src/components/Declaration.js +5 -14
- package/dist/src/components/Declaration.js.map +1 -0
- package/dist/src/components/Name.js +2 -1
- package/dist/src/components/Name.js.map +1 -0
- package/dist/src/components/ProjectDirectory.js +2 -1
- package/dist/src/components/ProjectDirectory.js.map +1 -0
- package/dist/src/components/Reference.d.ts.map +1 -1
- package/dist/src/components/Reference.js +7 -2
- package/dist/src/components/Reference.js.map +1 -0
- package/dist/src/components/UsingDirective.d.ts +5 -1
- package/dist/src/components/UsingDirective.d.ts.map +1 -1
- package/dist/src/components/UsingDirective.js +5 -2
- package/dist/src/components/UsingDirective.js.map +1 -0
- package/dist/src/components/access-expression/access-expression.d.ts +54 -0
- package/dist/src/components/access-expression/access-expression.d.ts.map +1 -0
- package/dist/src/components/access-expression/access-expression.js +277 -0
- package/dist/src/components/access-expression/access-expression.js.map +1 -0
- package/dist/src/components/access-expression/access-expression.test.d.ts +2 -0
- package/dist/src/components/access-expression/access-expression.test.d.ts.map +1 -0
- package/dist/src/components/access-expression/access-expression.test.js +336 -0
- package/dist/src/components/access-expression/access-expression.test.js.map +1 -0
- package/dist/src/components/access-expression/part-descriptors.d.ts +32 -0
- package/dist/src/components/access-expression/part-descriptors.d.ts.map +1 -0
- package/dist/src/components/access-expression/part-descriptors.js +99 -0
- package/dist/src/components/access-expression/part-descriptors.js.map +1 -0
- package/dist/src/components/attributes/attributes.js +2 -1
- package/dist/src/components/attributes/attributes.js.map +1 -0
- package/dist/src/components/attributes/attributes.test.js +2 -1
- package/dist/src/components/attributes/attributes.test.js.map +1 -0
- package/dist/src/components/class/declaration.d.ts +2 -2
- package/dist/src/components/class/declaration.d.ts.map +1 -1
- package/dist/src/components/class/declaration.js +21 -34
- package/dist/src/components/class/declaration.js.map +1 -0
- package/dist/src/components/class/declaration.test.js +199 -200
- package/dist/src/components/class/declaration.test.js.map +1 -0
- package/dist/src/components/constructor/constructor.d.ts.map +1 -1
- package/dist/src/components/constructor/constructor.js +13 -20
- package/dist/src/components/constructor/constructor.js.map +1 -0
- package/dist/src/components/constructor/constructor.test.js +12 -20
- package/dist/src/components/constructor/constructor.test.js.map +1 -0
- package/dist/src/components/doc/comment.js +2 -1
- package/dist/src/components/doc/comment.js.map +1 -0
- package/dist/src/components/doc/comment.test.js +2 -1
- package/dist/src/components/doc/comment.test.js.map +1 -0
- package/dist/src/components/doc/from-markdown.js +2 -1
- package/dist/src/components/doc/from-markdown.js.map +1 -0
- package/dist/src/components/doc/from-markdown.test.js +2 -1
- package/dist/src/components/doc/from-markdown.test.js.map +1 -0
- package/dist/src/components/{EnumDeclaration.d.ts → enum/declaration.d.ts} +6 -11
- package/dist/src/components/enum/declaration.d.ts.map +1 -0
- package/dist/src/components/enum/declaration.js +55 -0
- package/dist/src/components/enum/declaration.js.map +1 -0
- package/dist/src/components/enum/declaration.ref.test.d.ts +2 -0
- package/dist/src/components/enum/declaration.ref.test.d.ts.map +1 -0
- package/dist/src/components/enum/declaration.ref.test.js +121 -0
- package/dist/src/components/enum/declaration.ref.test.js.map +1 -0
- package/dist/src/components/enum/declaration.test.d.ts +2 -0
- package/dist/src/components/enum/declaration.test.d.ts.map +1 -0
- package/dist/src/components/enum/declaration.test.js +40 -0
- package/dist/src/components/enum/declaration.test.js.map +1 -0
- package/dist/src/components/enum/member.d.ts +7 -0
- package/dist/src/components/enum/member.d.ts.map +1 -0
- package/dist/src/components/enum/member.js +30 -0
- package/dist/src/components/enum/member.js.map +1 -0
- package/dist/src/components/enum/member.test.d.ts +2 -0
- package/dist/src/components/enum/member.test.d.ts.map +1 -0
- package/dist/src/components/enum/member.test.js +29 -0
- package/dist/src/components/enum/member.test.js.map +1 -0
- package/dist/src/components/field/field.d.ts.map +1 -1
- package/dist/src/components/field/field.js +11 -18
- package/dist/src/components/field/field.js.map +1 -0
- package/dist/src/components/field/field.test.js +9 -8
- package/dist/src/components/field/field.test.js.map +1 -0
- package/dist/src/components/index.d.ts +7 -3
- package/dist/src/components/index.d.ts.map +1 -1
- package/dist/src/components/index.js +9 -4
- package/dist/src/components/index.js.map +1 -0
- package/dist/src/components/interface/declaration.d.ts.map +1 -1
- package/dist/src/components/interface/declaration.js +21 -22
- package/dist/src/components/interface/declaration.js.map +1 -0
- package/dist/src/components/interface/declaration.test.js +28 -36
- package/dist/src/components/interface/declaration.test.js.map +1 -0
- package/dist/src/components/interface/method.d.ts.map +1 -1
- package/dist/src/components/interface/method.js +9 -19
- package/dist/src/components/interface/method.js.map +1 -0
- package/dist/src/components/interface/method.test.js +40 -48
- package/dist/src/components/interface/method.test.js.map +1 -0
- package/dist/src/components/interface/property.d.ts.map +1 -1
- package/dist/src/components/interface/property.js +23 -40
- package/dist/src/components/interface/property.js.map +1 -0
- package/dist/src/components/interface/property.test.js +13 -12
- package/dist/src/components/interface/property.test.js.map +1 -0
- package/dist/src/components/invocation-expression/invocation-expression.d.ts +29 -0
- package/dist/src/components/invocation-expression/invocation-expression.d.ts.map +1 -0
- package/dist/src/components/invocation-expression/invocation-expression.js +70 -0
- package/dist/src/components/invocation-expression/invocation-expression.js.map +1 -0
- package/dist/src/components/invocation-expression/invocation-expression.test.d.ts +2 -0
- package/dist/src/components/invocation-expression/invocation-expression.test.d.ts.map +1 -0
- package/dist/src/components/invocation-expression/invocation-expression.test.js +105 -0
- package/dist/src/components/invocation-expression/invocation-expression.test.js.map +1 -0
- package/dist/src/components/lexical-scope.d.ts +8 -0
- package/dist/src/components/lexical-scope.d.ts.map +1 -0
- package/dist/src/components/lexical-scope.js +25 -0
- package/dist/src/components/lexical-scope.js.map +1 -0
- package/dist/src/components/method/method.d.ts +5 -2
- package/dist/src/components/method/method.d.ts.map +1 -1
- package/dist/src/components/method/method.js +9 -17
- package/dist/src/components/method/method.js.map +1 -0
- package/dist/src/components/method/method.test.js +13 -12
- package/dist/src/components/method/method.test.js.map +1 -0
- package/dist/src/components/method-scope.d.ts +8 -0
- package/dist/src/components/method-scope.d.ts.map +1 -0
- package/dist/src/components/method-scope.js +25 -0
- package/dist/src/components/method-scope.js.map +1 -0
- package/dist/src/components/namespace-scopes.d.ts +13 -0
- package/dist/src/components/namespace-scopes.d.ts.map +1 -0
- package/dist/src/components/namespace-scopes.js +45 -0
- package/dist/src/components/namespace-scopes.js.map +1 -0
- package/dist/src/components/namespace.d.ts +7 -0
- package/dist/src/components/namespace.d.ts.map +1 -0
- package/dist/src/components/namespace.js +47 -0
- package/dist/src/components/namespace.js.map +1 -0
- package/dist/src/components/namespace.ref.test.d.ts +2 -0
- package/dist/src/components/namespace.ref.test.d.ts.map +1 -0
- package/dist/src/components/namespace.ref.test.js +182 -0
- package/dist/src/components/namespace.ref.test.js.map +1 -0
- package/dist/src/components/namespace.test.d.ts.map +1 -0
- package/dist/src/components/namespace.test.js +79 -0
- package/dist/src/components/namespace.test.js.map +1 -0
- package/dist/src/components/parameters/parameters.d.ts +2 -3
- package/dist/src/components/parameters/parameters.d.ts.map +1 -1
- package/dist/src/components/parameters/parameters.js +15 -15
- package/dist/src/components/parameters/parameters.js.map +1 -0
- package/dist/src/components/parameters/parameters.test.d.ts +2 -0
- package/dist/src/components/parameters/parameters.test.d.ts.map +1 -0
- package/dist/src/components/parameters/parameters.test.js +154 -0
- package/dist/src/components/parameters/parameters.test.js.map +1 -0
- package/dist/src/components/property/property.d.ts +2 -2
- package/dist/src/components/property/property.d.ts.map +1 -1
- package/dist/src/components/property/property.js +30 -40
- package/dist/src/components/property/property.js.map +1 -0
- package/dist/src/components/property/property.test.js +16 -15
- package/dist/src/components/property/property.test.js.map +1 -0
- package/dist/src/components/record/declaration.d.ts +18 -0
- package/dist/src/components/record/declaration.d.ts.map +1 -1
- package/dist/src/components/record/declaration.js +21 -14
- package/dist/src/components/record/declaration.js.map +1 -0
- package/dist/src/components/record/declaration.test.js +52 -4
- package/dist/src/components/record/declaration.test.js.map +1 -0
- package/dist/src/components/source-file/source-file.d.ts +19 -0
- package/dist/src/components/source-file/source-file.d.ts.map +1 -0
- package/dist/src/components/source-file/source-file.js +59 -0
- package/dist/src/components/source-file/source-file.js.map +1 -0
- package/dist/src/components/source-file/source-file.test.d.ts +2 -0
- package/dist/src/components/source-file/source-file.test.d.ts.map +1 -0
- package/dist/src/components/source-file/source-file.test.js +136 -0
- package/dist/src/components/source-file/source-file.test.js.map +1 -0
- package/dist/src/components/stc/index.js +2 -1
- package/dist/src/components/stc/index.js.map +1 -0
- package/dist/src/components/struct/declaration.d.ts.map +1 -1
- package/dist/src/components/struct/declaration.js +6 -7
- package/dist/src/components/struct/declaration.js.map +1 -0
- package/dist/src/components/struct/declaration.test.js +32 -40
- package/dist/src/components/struct/declaration.test.js.map +1 -0
- package/dist/src/components/type-parameters/type-parameter-constraints.js +2 -1
- package/dist/src/components/type-parameters/type-parameter-constraints.js.map +1 -0
- package/dist/src/components/type-parameters/type-parameter-constraints.test.js +2 -1
- package/dist/src/components/type-parameters/type-parameter-constraints.test.js.map +1 -0
- package/dist/src/components/type-parameters/type-parameter.d.ts.map +1 -1
- package/dist/src/components/type-parameters/type-parameter.js +9 -11
- package/dist/src/components/type-parameters/type-parameter.js.map +1 -0
- package/dist/src/components/type-parameters/type-parameters.js +2 -1
- package/dist/src/components/type-parameters/type-parameters.js.map +1 -0
- package/dist/src/components/type-parameters/type-parameters.test.js +5 -4
- package/dist/src/components/type-parameters/type-parameters.test.js.map +1 -0
- package/dist/src/components/var/declaration.d.ts.map +1 -1
- package/dist/src/components/var/declaration.js +8 -9
- package/dist/src/components/var/declaration.js.map +1 -0
- package/dist/src/components/var/declaration.test.js +13 -21
- package/dist/src/components/var/declaration.test.js.map +1 -0
- package/dist/src/contexts/format-options.d.ts +5 -0
- package/dist/src/contexts/format-options.d.ts.map +1 -0
- package/dist/src/contexts/format-options.js +9 -0
- package/dist/src/contexts/format-options.js.map +1 -0
- package/dist/src/contexts/global-namespace.d.ts +5 -0
- package/dist/src/contexts/global-namespace.d.ts.map +1 -0
- package/dist/src/contexts/global-namespace.js +25 -0
- package/dist/src/contexts/global-namespace.js.map +1 -0
- package/dist/src/contexts/namespace.d.ts +8 -0
- package/dist/src/contexts/namespace.d.ts.map +1 -0
- package/dist/src/contexts/namespace.js +6 -0
- package/dist/src/contexts/namespace.js.map +1 -0
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -1
- package/dist/src/index.js.map +1 -0
- package/dist/src/modifiers.d.ts +11 -0
- package/dist/src/modifiers.d.ts.map +1 -1
- package/dist/src/modifiers.js +2 -1
- package/dist/src/modifiers.js.map +1 -0
- package/dist/src/name-policy.js +2 -1
- package/dist/src/name-policy.js.map +1 -0
- package/dist/src/scopes/class.d.ts +10 -0
- package/dist/src/scopes/class.d.ts.map +1 -0
- package/dist/src/scopes/class.js +11 -0
- package/dist/src/scopes/class.js.map +1 -0
- package/dist/src/scopes/contexts.d.ts +9 -0
- package/dist/src/scopes/contexts.d.ts.map +1 -0
- package/dist/src/scopes/contexts.js +34 -0
- package/dist/src/scopes/contexts.js.map +1 -0
- package/dist/src/scopes/csharp.d.ts +10 -0
- package/dist/src/scopes/csharp.d.ts.map +1 -0
- package/dist/src/scopes/csharp.js +15 -0
- package/dist/src/scopes/csharp.js.map +1 -0
- package/dist/src/scopes/factories.d.ts +9 -0
- package/dist/src/scopes/factories.d.ts.map +1 -0
- package/dist/src/scopes/factories.js +24 -0
- package/dist/src/scopes/factories.js.map +1 -0
- package/dist/src/scopes/index.d.ts +10 -0
- package/dist/src/scopes/index.d.ts.map +1 -0
- package/dist/src/scopes/index.js +10 -0
- package/dist/src/scopes/index.js.map +1 -0
- package/dist/src/scopes/lexical.d.ts +7 -0
- package/dist/src/scopes/lexical.d.ts.map +1 -0
- package/dist/src/scopes/lexical.js +8 -0
- package/dist/src/scopes/lexical.js.map +1 -0
- package/dist/src/scopes/method.d.ts +9 -0
- package/dist/src/scopes/method.d.ts.map +1 -0
- package/dist/src/scopes/method.js +14 -0
- package/dist/src/scopes/method.js.map +1 -0
- package/dist/src/scopes/named-type.d.ts +22 -0
- package/dist/src/scopes/named-type.d.ts.map +1 -0
- package/dist/src/scopes/named-type.js +33 -0
- package/dist/src/scopes/named-type.js.map +1 -0
- package/dist/src/scopes/namespace.d.ts +11 -0
- package/dist/src/scopes/namespace.d.ts.map +1 -0
- package/dist/src/scopes/namespace.js +39 -0
- package/dist/src/scopes/namespace.js.map +1 -0
- package/dist/src/scopes/source-file.d.ts +16 -0
- package/dist/src/scopes/source-file.d.ts.map +1 -0
- package/dist/src/scopes/source-file.js +44 -0
- package/dist/src/scopes/source-file.js.map +1 -0
- package/dist/src/symbols/csharp.d.ts +87 -0
- package/dist/src/symbols/csharp.d.ts.map +1 -0
- package/dist/src/symbols/csharp.js +246 -0
- package/dist/src/symbols/csharp.js.map +1 -0
- package/dist/src/symbols/factories.d.ts +25 -0
- package/dist/src/symbols/factories.d.ts.map +1 -0
- package/dist/src/symbols/factories.js +93 -0
- package/dist/src/symbols/factories.js.map +1 -0
- package/dist/src/symbols/index.d.ts +5 -2
- package/dist/src/symbols/index.d.ts.map +1 -1
- package/dist/src/symbols/index.js +6 -2
- package/dist/src/symbols/index.js.map +1 -0
- package/dist/src/symbols/method.d.ts +13 -0
- package/dist/src/symbols/method.d.ts.map +1 -0
- package/dist/src/symbols/method.js +16 -0
- package/dist/src/symbols/method.js.map +1 -0
- package/dist/src/symbols/named-type.d.ts +19 -0
- package/dist/src/symbols/named-type.d.ts.map +1 -0
- package/dist/src/symbols/named-type.js +31 -0
- package/dist/src/symbols/named-type.js.map +1 -0
- package/dist/src/symbols/namespace.d.ts +22 -0
- package/dist/src/symbols/namespace.d.ts.map +1 -0
- package/dist/src/symbols/namespace.js +45 -0
- package/dist/src/symbols/namespace.js.map +1 -0
- package/dist/src/symbols/reference.d.ts +2 -2
- package/dist/src/symbols/reference.d.ts.map +1 -1
- package/dist/src/symbols/reference.js +50 -44
- package/dist/src/symbols/reference.js.map +1 -0
- package/dist/test/project-directory.test.js +20 -19
- package/dist/test/project-directory.test.js.map +1 -0
- package/dist/test/using.test.js +23 -21
- package/dist/test/using.test.js.map +1 -0
- package/dist/test/utils.d.ts.map +1 -1
- package/dist/test/utils.js +7 -4
- package/dist/test/utils.js.map +1 -0
- package/dist/test/vitest.setup.js +2 -1
- package/dist/test/vitest.setup.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +12 -6
- package/src/components/Declaration.tsx +3 -6
- package/src/components/Reference.tsx +3 -1
- package/src/components/UsingDirective.tsx +12 -2
- package/src/components/access-expression/access-expression.test.tsx +284 -0
- package/src/components/access-expression/access-expression.tsx +375 -0
- package/src/components/access-expression/part-descriptors.ts +175 -0
- package/src/components/class/declaration.test.tsx +142 -150
- package/src/components/class/declaration.tsx +20 -32
- package/src/components/constructor/constructor.test.tsx +10 -16
- package/src/components/constructor/constructor.tsx +13 -32
- package/src/components/enum/declaration.ref.test.tsx +93 -0
- package/src/components/enum/declaration.test.tsx +34 -0
- package/src/components/enum/declaration.tsx +65 -0
- package/src/components/enum/member.test.tsx +24 -0
- package/src/components/enum/member.tsx +36 -0
- package/src/components/field/field.test.tsx +7 -7
- package/src/components/field/field.tsx +12 -22
- package/src/components/index.ts +7 -3
- package/src/components/interface/declaration.test.tsx +26 -32
- package/src/components/interface/declaration.tsx +16 -18
- package/src/components/interface/method.test.tsx +38 -44
- package/src/components/interface/method.tsx +7 -20
- package/src/components/interface/property.test.tsx +11 -11
- package/src/components/interface/property.tsx +15 -34
- package/src/components/invocation-expression/invocation-expression.test.tsx +101 -0
- package/src/components/invocation-expression/invocation-expression.tsx +60 -0
- package/src/components/lexical-scope.tsx +29 -0
- package/src/components/method/method.test.tsx +11 -11
- package/src/components/method/method.tsx +12 -23
- package/src/components/method-scope.tsx +27 -0
- package/src/components/namespace-scopes.tsx +44 -0
- package/src/components/namespace.ref.test.tsx +139 -0
- package/src/components/namespace.test.tsx +52 -0
- package/src/components/namespace.tsx +45 -0
- package/src/components/parameters/parameters.test.tsx +117 -0
- package/src/components/parameters/parameters.tsx +11 -23
- package/src/components/property/property.test.tsx +14 -14
- package/src/components/property/property.tsx +23 -41
- package/src/components/record/declaration.test.tsx +47 -3
- package/src/components/record/declaration.tsx +34 -11
- package/src/components/source-file/source-file.test.tsx +96 -0
- package/src/components/source-file/source-file.tsx +98 -0
- package/src/components/struct/declaration.test.tsx +16 -22
- package/src/components/struct/declaration.tsx +4 -6
- package/src/components/type-parameters/type-parameter.tsx +14 -11
- package/src/components/type-parameters/type-parameters.test.tsx +4 -4
- package/src/components/var/declaration.test.tsx +8 -14
- package/src/components/var/declaration.tsx +12 -6
- package/src/contexts/format-options.ts +14 -0
- package/src/contexts/global-namespace.ts +29 -0
- package/src/contexts/namespace.ts +13 -0
- package/src/index.ts +2 -0
- package/src/modifiers.ts +14 -0
- package/src/scopes/class.ts +12 -0
- package/src/scopes/contexts.ts +45 -0
- package/src/scopes/csharp.ts +23 -0
- package/src/scopes/factories.ts +45 -0
- package/src/scopes/index.ts +9 -0
- package/src/scopes/lexical.ts +10 -0
- package/src/scopes/method.ts +22 -0
- package/src/scopes/named-type.ts +44 -0
- package/src/scopes/namespace.ts +59 -0
- package/src/scopes/source-file.ts +67 -0
- package/src/symbols/csharp.ts +339 -0
- package/src/symbols/factories.ts +215 -0
- package/src/symbols/index.ts +5 -2
- package/src/symbols/method.ts +26 -0
- package/src/symbols/named-type.ts +54 -0
- package/src/symbols/namespace.ts +62 -0
- package/src/symbols/reference.tsx +64 -0
- package/temp/api.json +6919 -2532
- package/test/project-directory.test.tsx +14 -16
- package/test/using.test.tsx +21 -21
- package/test/utils.tsx +2 -1
- package/tsconfig.json +4 -1
- package/tsdoc-metadata.json +1 -1
- package/dist/src/components/EnumDeclaration.d.ts.map +0 -1
- package/dist/src/components/EnumDeclaration.js +0 -85
- package/dist/src/components/Namespace.d.ts +0 -11
- package/dist/src/components/Namespace.d.ts.map +0 -1
- package/dist/src/components/Namespace.js +0 -33
- package/dist/src/components/SourceFile.d.ts +0 -14
- package/dist/src/components/SourceFile.d.ts.map +0 -1
- package/dist/src/components/SourceFile.js +0 -69
- package/dist/src/symbols/csharp-output-symbol.d.ts +0 -8
- package/dist/src/symbols/csharp-output-symbol.d.ts.map +0 -1
- package/dist/src/symbols/csharp-output-symbol.js +0 -19
- package/dist/src/symbols/scopes.d.ts +0 -14
- package/dist/src/symbols/scopes.d.ts.map +0 -1
- package/dist/src/symbols/scopes.js +0 -31
- package/dist/test/enum.test.d.ts +0 -2
- package/dist/test/enum.test.d.ts.map +0 -1
- package/dist/test/enum.test.js +0 -178
- package/dist/test/namespace.test.d.ts.map +0 -1
- package/dist/test/namespace.test.js +0 -81
- package/dist/test/sourcefile.test.d.ts +0 -2
- package/dist/test/sourcefile.test.d.ts.map +0 -1
- package/dist/test/sourcefile.test.js +0 -58
- package/src/components/EnumDeclaration.tsx +0 -99
- package/src/components/Namespace.tsx +0 -35
- package/src/components/SourceFile.tsx +0 -78
- package/src/symbols/csharp-output-symbol.ts +0 -22
- package/src/symbols/reference.ts +0 -65
- package/src/symbols/scopes.ts +0 -41
- package/test/enum.test.tsx +0 -149
- package/test/namespace.test.tsx +0 -55
- package/test/sourcefile.test.tsx +0 -47
- /package/dist/{test → src/components}/namespace.test.d.ts +0 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { shallowReactive, track, TrackOpTypes, trigger, TriggerOpTypes, useScope } from "@alloy-js/core";
|
|
2
|
+
import { CSharpLexicalScope } from "./lexical.js";
|
|
3
|
+
export class CSharpSourceFileScope extends CSharpLexicalScope {
|
|
4
|
+
#usings = shallowReactive(new Set());
|
|
5
|
+
constructor(name, parent, options) {
|
|
6
|
+
super(name, parent, options);
|
|
7
|
+
}
|
|
8
|
+
get usings() {
|
|
9
|
+
return this.#usings;
|
|
10
|
+
}
|
|
11
|
+
get parent() {
|
|
12
|
+
return super.parent;
|
|
13
|
+
}
|
|
14
|
+
set parent(v) {
|
|
15
|
+
super.parent = v;
|
|
16
|
+
}
|
|
17
|
+
addUsing(using) {
|
|
18
|
+
this.#usings.add(using);
|
|
19
|
+
}
|
|
20
|
+
#hasBlockNamespace = false;
|
|
21
|
+
get hasBlockNamespace() {
|
|
22
|
+
track(this, TrackOpTypes.GET, "hasBlockNamespace");
|
|
23
|
+
return this.#hasBlockNamespace;
|
|
24
|
+
}
|
|
25
|
+
set hasBlockNamespace(value) {
|
|
26
|
+
const old = this.#hasBlockNamespace;
|
|
27
|
+
if (this.#hasBlockNamespace === value) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
this.#hasBlockNamespace = value;
|
|
31
|
+
trigger(this, TriggerOpTypes.SET, "hasBlockNamespace", value, old);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export function useSourceFileScope() {
|
|
35
|
+
let scope = useScope();
|
|
36
|
+
while (scope) {
|
|
37
|
+
if (scope instanceof CSharpSourceFileScope) {
|
|
38
|
+
return scope;
|
|
39
|
+
}
|
|
40
|
+
scope = scope.parent;
|
|
41
|
+
}
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=source-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["shallowReactive","track","TrackOpTypes","trigger","TriggerOpTypes","useScope","CSharpLexicalScope","CSharpSourceFileScope","usings","Set","constructor","name","parent","options","v","addUsing","using","add","hasBlockNamespace","GET","value","old","SET","useSourceFileScope","scope","undefined"],"sources":["../../../src/scopes/source-file.ts"],"sourcesContent":[null],"mappings":"AAAA,SAGEA,eAAe,EACfC,KAAK,EACLC,YAAY,EACZC,OAAO,EACPC,cAAc,EACdC,QAAQ,QACH,gBAAgB;AAEvB,SAASC,kBAAkB,QAAQ,cAAc;AAGjD,OAAO,MAAMC,qBAAqB,SAASD,kBAAkB,CAAC;EAC5D,CAACE,MAAM,GAAGR,eAAe,CAAuB,IAAIS,GAAG,CAAC,CAAC,CAAC;EAE1DC,WAAWA,CACTC,IAAY,EACZC,MAA6B,EAC7BC,OAA4B,EAC5B;IACA,KAAK,CAACF,IAAI,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAC9B;EACA,IAAIL,MAAMA,CAAA,EAAG;IACX,OAAO,IAAI,CAAC,CAACA,MAAM;EACrB;EAEA,IAAII,MAAMA,CAAA,EAAG;IACX,OAAO,KAAK,CAACA,MAAM;EACrB;EAEA,IAAIA,MAAMA,CAACE,CAAuB,EAAE;IAClC,KAAK,CAACF,MAAM,GAAGE,CAAC;EAClB;EAEAC,QAAQA,CAACC,KAAsB,EAAE;IAC/B,IAAI,CAAC,CAACR,MAAM,CAACS,GAAG,CAACD,KAAK,CAAC;EACzB;EAEA,CAACE,iBAAiB,GAAY,KAAK;EACnC,IAAIA,iBAAiBA,CAAA,EAAG;IACtBjB,KAAK,CAAC,IAAI,EAAEC,YAAY,CAACiB,GAAG,EAAE,mBAAmB,CAAC;IAClD,OAAO,IAAI,CAAC,CAACD,iBAAiB;EAChC;EAEA,IAAIA,iBAAiBA,CAACE,KAAc,EAAE;IACpC,MAAMC,GAAG,GAAG,IAAI,CAAC,CAACH,iBAAiB;IACnC,IAAI,IAAI,CAAC,CAACA,iBAAiB,KAAKE,KAAK,EAAE;MACrC;IACF;IACA,IAAI,CAAC,CAACF,iBAAiB,GAAGE,KAAK;IAC/BjB,OAAO,CAAC,IAAI,EAAEC,cAAc,CAACkB,GAAG,EAAE,mBAAmB,EAAEF,KAAK,EAAEC,GAAG,CAAC;EACpE;AACF;AAEA,OAAO,SAASE,kBAAkBA,CAAA,EAAG;EACnC,IAAIC,KAA8B,GAAGnB,QAAQ,CAAC,CAAC;EAC/C,OAAOmB,KAAK,EAAE;IACZ,IAAIA,KAAK,YAAYjB,qBAAqB,EAAE;MAC1C,OAAOiB,KAAK;IACd;IACAA,KAAK,GAAGA,KAAK,CAACZ,MAAM;EACtB;EAEA,OAAOa,SAAS;AAClB","ignoreList":[]}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { Namekey, OutputSpace, OutputSymbol, OutputSymbolOptions } from "@alloy-js/core";
|
|
2
|
+
import { AccessModifiers, NonAccessModifiers } from "../modifiers.js";
|
|
3
|
+
import { NamespaceSymbol } from "./namespace.js";
|
|
4
|
+
export type DeclaredAccessibility = "private" | "protected" | "internal" | "public";
|
|
5
|
+
export interface CSharpSymbolOptions extends OutputSymbolOptions {
|
|
6
|
+
/**
|
|
7
|
+
* The accessibility of the symbol.
|
|
8
|
+
*/
|
|
9
|
+
accessibility?: DeclaredAccessibility;
|
|
10
|
+
isOverride?: boolean;
|
|
11
|
+
isAbstract?: boolean;
|
|
12
|
+
isVirtual?: boolean;
|
|
13
|
+
isStatic?: boolean;
|
|
14
|
+
isSealed?: boolean;
|
|
15
|
+
isExtern?: boolean;
|
|
16
|
+
isReadOnly?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Whether the value held by this symbol could be null.
|
|
19
|
+
*/
|
|
20
|
+
isNullable?: boolean;
|
|
21
|
+
}
|
|
22
|
+
export type CSharpSymbolKinds = "symbol" | "named-type" | "method" | "field" | "property" | "namespace" | "event";
|
|
23
|
+
/**
|
|
24
|
+
* This is the base type for all symbols in C#.
|
|
25
|
+
*
|
|
26
|
+
* Many subtypes of this symbol exist for specific purposes. However, this symbol
|
|
27
|
+
* may be used in cases where a more specific symbol is not required.
|
|
28
|
+
*
|
|
29
|
+
* @remarks
|
|
30
|
+
*
|
|
31
|
+
* This is roughly equivalent to the Roslyn ISymbol interface:
|
|
32
|
+
* https://learn.microsoft.com/en-us/dotnet/api/microsoft.codeanalysis.isymbol?view=roslyn-dotnet-4.13.0
|
|
33
|
+
*/
|
|
34
|
+
export declare class CSharpSymbol extends OutputSymbol {
|
|
35
|
+
#private;
|
|
36
|
+
readonly symbolKind: CSharpSymbolKinds;
|
|
37
|
+
constructor(name: string | Namekey, spaces: OutputSpace[] | OutputSpace | undefined, options?: CSharpSymbolOptions);
|
|
38
|
+
get enclosingNamespace(): NamespaceSymbol | undefined;
|
|
39
|
+
get accessibility(): DeclaredAccessibility | undefined;
|
|
40
|
+
set accessibility(value: DeclaredAccessibility | undefined);
|
|
41
|
+
copy(): CSharpSymbol;
|
|
42
|
+
/**
|
|
43
|
+
* Whether this symbol is static.
|
|
44
|
+
*/
|
|
45
|
+
get isStatic(): boolean;
|
|
46
|
+
set isStatic(value: boolean);
|
|
47
|
+
/**
|
|
48
|
+
* Whether this symbol is virtual.
|
|
49
|
+
*/
|
|
50
|
+
get isVirtual(): boolean;
|
|
51
|
+
set isVirtual(value: boolean);
|
|
52
|
+
/**
|
|
53
|
+
* Whether this symbol is abstract.
|
|
54
|
+
*/
|
|
55
|
+
get isAbstract(): boolean;
|
|
56
|
+
set isAbstract(value: boolean);
|
|
57
|
+
/**
|
|
58
|
+
* Whether this symbol is override.
|
|
59
|
+
*/
|
|
60
|
+
get isOverride(): boolean;
|
|
61
|
+
set isOverride(value: boolean);
|
|
62
|
+
/**
|
|
63
|
+
* Whether this symbol is sealed.
|
|
64
|
+
*/
|
|
65
|
+
get isSealed(): boolean;
|
|
66
|
+
set isSealed(value: boolean);
|
|
67
|
+
/**
|
|
68
|
+
* Whether this symbol is extern.
|
|
69
|
+
*/
|
|
70
|
+
get isExtern(): boolean;
|
|
71
|
+
set isExtern(value: boolean);
|
|
72
|
+
/**
|
|
73
|
+
* Whether this symbol is readonly.
|
|
74
|
+
*/
|
|
75
|
+
get isReadOnly(): boolean;
|
|
76
|
+
set isReadOnly(value: boolean);
|
|
77
|
+
/**
|
|
78
|
+
* Whether this symbol might contain null. True if this symbol has a
|
|
79
|
+
* `typeSymbol` and that symbol is nullable, or else when this symbol has the
|
|
80
|
+
* `nullable` option set.
|
|
81
|
+
*/
|
|
82
|
+
get isNullable(): boolean;
|
|
83
|
+
set isNullable(value: boolean);
|
|
84
|
+
}
|
|
85
|
+
export declare function accessibilityFromProps(props: AccessModifiers): "public" | "protected" | "private" | "internal";
|
|
86
|
+
export declare function nonAccessibilityFromProps(props: NonAccessModifiers): CSharpSymbolOptions;
|
|
87
|
+
//# sourceMappingURL=csharp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"csharp.d.ts","sourceRoot":"","sources":["../../../src/symbols/csharp.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAGP,WAAW,EACX,YAAY,EACZ,mBAAmB,EAMpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAEtE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,MAAM,MAAM,qBAAqB,GAC7B,SAAS,GACT,WAAW,GACX,UAAU,GACV,QAAQ,CAAC;AAEb,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;IAC9D;;OAEG;IACH,aAAa,CAAC,EAAE,qBAAqB,CAAC;IACtC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,iBAAiB,GACzB,QAAQ,GACR,YAAY,GACZ,QAAQ,GACR,OAAO,GACP,UAAU,GACV,WAAW,GACX,OAAO,CAAC;AACZ;;;;;;;;;;GAUG;AACH,qBAAa,YAAa,SAAQ,YAAY;;IAC5C,SAAgB,UAAU,EAAE,iBAAiB,CAAY;gBAGvD,IAAI,EAAE,MAAM,GAAG,OAAO,EACtB,MAAM,EAAE,WAAW,EAAE,GAAG,WAAW,GAAG,SAAS,EAC/C,OAAO,GAAE,mBAAwB;IAenC,IAAI,kBAAkB,IAAI,eAAe,GAAG,SAAS,CA4BpD;IAGD,IAAI,aAAa,IAKQ,qBAAqB,GAAG,SAAS,CAFzD;IAED,IAAI,aAAa,CAAC,KAAK,EAAE,qBAAqB,GAAG,SAAS,EASzD;IAED,IAAI;IAyBJ;;OAEG;IACH,IAAI,QAAQ,IAAI,OAAO,CAGtB;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAS1B;IAGD;;OAEG;IACH,IAAI,SAAS,IAAI,OAAO,CAGvB;IACD,IAAI,SAAS,CAAC,KAAK,EAAE,OAAO,EAS3B;IAID;;OAEG;IACH,IAAI,UAAU,IAAI,OAAO,CAGxB;IACD,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,EAS5B;IAGD;;OAEG;IACH,IAAI,UAAU,IAAI,OAAO,CAGxB;IACD,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,EAS5B;IAGD;;OAEG;IACH,IAAI,QAAQ,IAAI,OAAO,CAGtB;IACD,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAS1B;IAGD;;OAEG;IACH,IAAI,QAAQ,IAAI,OAAO,CAGtB;IACD,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAS1B;IAGD;;OAEG;IACH,IAAI,UAAU,IAAI,OAAO,CAGxB;IACD,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,EAS5B;IAKD;;;;OAIG;IACH,IAAI,UAAU,IASQ,OAAO,CAF5B;IAED,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,EAS5B;CACF;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,eAAe,mDAQ5D;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,kBAAkB,GACxB,mBAAmB,CAUrB"}
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import { OutputDeclarationSpace, OutputMemberSpace, OutputSymbol, track, TrackOpTypes, trigger, TriggerOpTypes, watch } from "@alloy-js/core";
|
|
2
|
+
/**
|
|
3
|
+
* This is the base type for all symbols in C#.
|
|
4
|
+
*
|
|
5
|
+
* Many subtypes of this symbol exist for specific purposes. However, this symbol
|
|
6
|
+
* may be used in cases where a more specific symbol is not required.
|
|
7
|
+
*
|
|
8
|
+
* @remarks
|
|
9
|
+
*
|
|
10
|
+
* This is roughly equivalent to the Roslyn ISymbol interface:
|
|
11
|
+
* https://learn.microsoft.com/en-us/dotnet/api/microsoft.codeanalysis.isymbol?view=roslyn-dotnet-4.13.0
|
|
12
|
+
*/
|
|
13
|
+
export class CSharpSymbol extends OutputSymbol {
|
|
14
|
+
symbolKind = "symbol";
|
|
15
|
+
constructor(name, spaces, options = {}) {
|
|
16
|
+
super(name, spaces, options);
|
|
17
|
+
this.#accessibility = options.accessibility;
|
|
18
|
+
this.#isAbstract = options.isAbstract ?? false;
|
|
19
|
+
this.#isVirtual = options.isVirtual ?? false;
|
|
20
|
+
this.#isStatic = options.isStatic ?? false;
|
|
21
|
+
this.#isOverride = options.isOverride ?? false;
|
|
22
|
+
this.#isSealed = options.isSealed ?? false;
|
|
23
|
+
this.#isExtern = options.isExtern ?? false;
|
|
24
|
+
this.#isReadOnly = options.isReadOnly ?? false;
|
|
25
|
+
this.#isNullable = options.isNullable; // undefined means unset, here.
|
|
26
|
+
}
|
|
27
|
+
get enclosingNamespace() {
|
|
28
|
+
if (this.spaces.length === 0) {
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// todo: probably need to validate that a symbol can't belong to spaces in
|
|
33
|
+
// multiple namespaces.
|
|
34
|
+
const firstSpace = this.spaces[0];
|
|
35
|
+
if (firstSpace instanceof OutputMemberSpace) {
|
|
36
|
+
// this symbol is a member of something, so get the enclosing namespace from
|
|
37
|
+
// the symbol.
|
|
38
|
+
|
|
39
|
+
if (firstSpace.symbol.constructor.name === "NamespaceSymbol") {
|
|
40
|
+
// this is a namespace symbol, so return the namespace symbol itself.
|
|
41
|
+
// can't use instanceof here due to circular reference issues.
|
|
42
|
+
return firstSpace.symbol;
|
|
43
|
+
}
|
|
44
|
+
return firstSpace.symbol.enclosingNamespace;
|
|
45
|
+
} else if (firstSpace instanceof OutputDeclarationSpace) {
|
|
46
|
+
// this symbol is in a lexical scope, so get the namespace symbol from the
|
|
47
|
+
// scope.
|
|
48
|
+
return firstSpace.scope.enclosingNamespace;
|
|
49
|
+
}
|
|
50
|
+
throw new Error("No place to get namespace symbol from");
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
#accessibility;
|
|
54
|
+
get accessibility() {
|
|
55
|
+
track(this, TrackOpTypes.GET, "accessibility");
|
|
56
|
+
return this.#accessibility;
|
|
57
|
+
}
|
|
58
|
+
set accessibility(value) {
|
|
59
|
+
const old = this.#accessibility;
|
|
60
|
+
if (old === value) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
this.#accessibility = value;
|
|
64
|
+
trigger(this, TriggerOpTypes.SET, "accessibility", value, old);
|
|
65
|
+
}
|
|
66
|
+
copy() {
|
|
67
|
+
const options = this.getCopyOptions();
|
|
68
|
+
const copy = new CSharpSymbol(this.name, undefined, {
|
|
69
|
+
...options,
|
|
70
|
+
accessibility: this.#accessibility,
|
|
71
|
+
isStatic: this.#isStatic,
|
|
72
|
+
isVirtual: this.#isVirtual,
|
|
73
|
+
isAbstract: this.#isAbstract,
|
|
74
|
+
isOverride: this.#isOverride,
|
|
75
|
+
isSealed: this.#isSealed,
|
|
76
|
+
isExtern: this.#isExtern,
|
|
77
|
+
isReadOnly: this.#isReadOnly
|
|
78
|
+
});
|
|
79
|
+
this.initializeCopy(copy);
|
|
80
|
+
watch(() => this.accessibility, newAccessibility => {
|
|
81
|
+
copy.accessibility = newAccessibility;
|
|
82
|
+
});
|
|
83
|
+
return copy;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Whether this symbol is static.
|
|
88
|
+
*/
|
|
89
|
+
get isStatic() {
|
|
90
|
+
track(this, TrackOpTypes.GET, "isStatic");
|
|
91
|
+
return this.#isStatic;
|
|
92
|
+
}
|
|
93
|
+
set isStatic(value) {
|
|
94
|
+
const old = this.#isStatic;
|
|
95
|
+
if (old === value) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
this.#isStatic = value;
|
|
99
|
+
trigger(this, TriggerOpTypes.SET, "isStatic", value, old);
|
|
100
|
+
}
|
|
101
|
+
#isStatic = false;
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Whether this symbol is virtual.
|
|
105
|
+
*/
|
|
106
|
+
get isVirtual() {
|
|
107
|
+
track(this, TrackOpTypes.GET, "isVirtual");
|
|
108
|
+
return this.#isVirtual;
|
|
109
|
+
}
|
|
110
|
+
set isVirtual(value) {
|
|
111
|
+
const old = this.#isVirtual;
|
|
112
|
+
if (old === value) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
this.#isVirtual = value;
|
|
116
|
+
trigger(this, TriggerOpTypes.SET, "isVirtual", value, old);
|
|
117
|
+
}
|
|
118
|
+
#isVirtual = false;
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Whether this symbol is abstract.
|
|
122
|
+
*/
|
|
123
|
+
get isAbstract() {
|
|
124
|
+
track(this, TrackOpTypes.GET, "isAbstract");
|
|
125
|
+
return this.#isAbstract;
|
|
126
|
+
}
|
|
127
|
+
set isAbstract(value) {
|
|
128
|
+
const old = this.#isAbstract;
|
|
129
|
+
if (old === value) {
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
this.#isAbstract = value;
|
|
133
|
+
trigger(this, TriggerOpTypes.SET, "isAbstract", value, old);
|
|
134
|
+
}
|
|
135
|
+
#isAbstract = false;
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Whether this symbol is override.
|
|
139
|
+
*/
|
|
140
|
+
get isOverride() {
|
|
141
|
+
track(this, TrackOpTypes.GET, "isOverride");
|
|
142
|
+
return this.#isOverride;
|
|
143
|
+
}
|
|
144
|
+
set isOverride(value) {
|
|
145
|
+
const old = this.#isOverride;
|
|
146
|
+
if (old === value) {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
this.#isOverride = value;
|
|
150
|
+
trigger(this, TriggerOpTypes.SET, "isOverride", value, old);
|
|
151
|
+
}
|
|
152
|
+
#isOverride = false;
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Whether this symbol is sealed.
|
|
156
|
+
*/
|
|
157
|
+
get isSealed() {
|
|
158
|
+
track(this, TrackOpTypes.GET, "isSealed");
|
|
159
|
+
return this.#isSealed;
|
|
160
|
+
}
|
|
161
|
+
set isSealed(value) {
|
|
162
|
+
const old = this.#isSealed;
|
|
163
|
+
if (old === value) {
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
this.#isSealed = value;
|
|
167
|
+
trigger(this, TriggerOpTypes.SET, "isSealed", value, old);
|
|
168
|
+
}
|
|
169
|
+
#isSealed = false;
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* Whether this symbol is extern.
|
|
173
|
+
*/
|
|
174
|
+
get isExtern() {
|
|
175
|
+
track(this, TrackOpTypes.GET, "isExtern");
|
|
176
|
+
return this.#isExtern;
|
|
177
|
+
}
|
|
178
|
+
set isExtern(value) {
|
|
179
|
+
const old = this.#isExtern;
|
|
180
|
+
if (old === value) {
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
this.#isExtern = value;
|
|
184
|
+
trigger(this, TriggerOpTypes.SET, "isExtern", value, old);
|
|
185
|
+
}
|
|
186
|
+
#isExtern = false;
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* Whether this symbol is readonly.
|
|
190
|
+
*/
|
|
191
|
+
get isReadOnly() {
|
|
192
|
+
track(this, TrackOpTypes.GET, "isReadOnly");
|
|
193
|
+
return this.#isReadOnly;
|
|
194
|
+
}
|
|
195
|
+
set isReadOnly(value) {
|
|
196
|
+
const old = this.#isReadOnly;
|
|
197
|
+
if (old === value) {
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
this.#isReadOnly = value;
|
|
201
|
+
trigger(this, TriggerOpTypes.SET, "isReadOnly", value, old);
|
|
202
|
+
}
|
|
203
|
+
#isReadOnly = false;
|
|
204
|
+
#isNullable = undefined;
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* Whether this symbol might contain null. True if this symbol has a
|
|
208
|
+
* `typeSymbol` and that symbol is nullable, or else when this symbol has the
|
|
209
|
+
* `nullable` option set.
|
|
210
|
+
*/
|
|
211
|
+
get isNullable() {
|
|
212
|
+
if (this.hasTypeSymbol && this.#isNullable === undefined) {
|
|
213
|
+
return this.type.isNullable;
|
|
214
|
+
}
|
|
215
|
+
track(this, TrackOpTypes.GET, "isNullable");
|
|
216
|
+
return !!this.#isNullable;
|
|
217
|
+
}
|
|
218
|
+
set isNullable(value) {
|
|
219
|
+
const old = this.#isNullable;
|
|
220
|
+
if (old === value) {
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
this.#isNullable = value;
|
|
224
|
+
trigger(this, TriggerOpTypes.SET, "isNullable", value, old);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
export function accessibilityFromProps(props) {
|
|
228
|
+
for (const key of ["public", "internal", "protected", "private"]) {
|
|
229
|
+
if (props[key]) {
|
|
230
|
+
return key;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
return "private";
|
|
234
|
+
}
|
|
235
|
+
export function nonAccessibilityFromProps(props) {
|
|
236
|
+
return {
|
|
237
|
+
isOverride: props.override ?? false,
|
|
238
|
+
isAbstract: props.abstract ?? false,
|
|
239
|
+
isVirtual: props.virtual ?? false,
|
|
240
|
+
isStatic: props.static ?? false,
|
|
241
|
+
isSealed: props.sealed ?? false,
|
|
242
|
+
isExtern: props.extern ?? false,
|
|
243
|
+
isReadOnly: props.readOnly ?? false
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
//# sourceMappingURL=csharp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["OutputDeclarationSpace","OutputMemberSpace","OutputSymbol","track","TrackOpTypes","trigger","TriggerOpTypes","watch","CSharpSymbol","symbolKind","constructor","name","spaces","options","accessibility","isAbstract","isVirtual","isStatic","isOverride","isSealed","isExtern","isReadOnly","isNullable","enclosingNamespace","length","undefined","firstSpace","symbol","scope","Error","GET","value","old","SET","copy","getCopyOptions","initializeCopy","newAccessibility","hasTypeSymbol","type","accessibilityFromProps","props","key","nonAccessibilityFromProps","override","abstract","virtual","static","sealed","extern","readOnly"],"sources":["../../../src/symbols/csharp.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Namekey, OutputSymbolOptions } from "@alloy-js/core";
|
|
2
|
+
import { CSharpMethodScope } from "../scopes/method.js";
|
|
3
|
+
import { CSharpNamedTypeScope } from "../scopes/named-type.js";
|
|
4
|
+
import { CSharpSymbol, CSharpSymbolOptions } from "./csharp.js";
|
|
5
|
+
import { MethodKinds, MethodSymbol } from "./method.js";
|
|
6
|
+
import { NamedTypeSymbol, NamedTypeTypeKind } from "./named-type.js";
|
|
7
|
+
import { NamespaceSymbol } from "./namespace.js";
|
|
8
|
+
/**
|
|
9
|
+
* Create a symbol for a parameter in the current method scope.
|
|
10
|
+
*/
|
|
11
|
+
export declare function createParameterSymbol(originalName: string | Namekey, options?: CSharpSymbolOptions): CSharpSymbol;
|
|
12
|
+
export interface CreateTypeParameterSymbolOptions extends CSharpSymbolOptions {
|
|
13
|
+
scope?: CSharpMethodScope | CSharpNamedTypeScope;
|
|
14
|
+
}
|
|
15
|
+
export declare function createTypeParameterSymbol(originalName: string | Namekey, options?: CreateTypeParameterSymbolOptions): CSharpSymbol;
|
|
16
|
+
export declare function createFieldSymbol(originalName: string | Namekey, options?: CSharpSymbolOptions): CSharpSymbol;
|
|
17
|
+
export declare function createNamedTypeSymbol(name: string | Namekey, kind: NamedTypeTypeKind, options?: OutputSymbolOptions): NamedTypeSymbol;
|
|
18
|
+
export declare function createNamespaceSymbol(name: string): NamespaceSymbol;
|
|
19
|
+
export interface CreateMethodSymbolOptions extends CSharpSymbolOptions {
|
|
20
|
+
methodKind?: MethodKinds;
|
|
21
|
+
}
|
|
22
|
+
export declare function createMethodSymbol(originalName: string | Namekey, options?: CreateMethodSymbolOptions): MethodSymbol;
|
|
23
|
+
export declare function createPropertySymbol(name: string | Namekey, options: CSharpSymbolOptions): CSharpSymbol;
|
|
24
|
+
export declare function createVariableSymbol(originalName: string | Namekey, options?: CSharpSymbolOptions): CSharpSymbol;
|
|
25
|
+
//# sourceMappingURL=factories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../../src/symbols/factories.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAGP,mBAAmB,EAEpB,MAAM,gBAAgB,CAAC;AAOxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAM/D,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,GAAG,OAAO,EAC9B,OAAO,GAAE,mBAAwB,gBAgBlC;AAED,MAAM,WAAW,gCAAiC,SAAQ,mBAAmB;IAC3E,KAAK,CAAC,EAAE,iBAAiB,GAAG,oBAAoB,CAAC;CAClD;AACD,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,MAAM,GAAG,OAAO,EAC9B,OAAO,GAAE,gCAAqC,gBAiB/C;AAED,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,GAAG,OAAO,EAC9B,OAAO,GAAE,mBAAwB,gBA0BlC;AASD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,GAAG,OAAO,EACtB,IAAI,EAAE,iBAAiB,EACvB,OAAO,CAAC,EAAE,mBAAmB,mBAM9B;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,mBAOjD;AAED,MAAM,WAAW,yBAA0B,SAAQ,mBAAmB;IACpE,UAAU,CAAC,EAAE,WAAW,CAAC;CAC1B;AAED,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,MAAM,GAAG,OAAO,EAC9B,OAAO,GAAE,yBAA8B,gBAsBxC;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,GAAG,OAAO,EACtB,OAAO,EAAE,mBAAmB,gBAU7B;AAED,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,MAAM,GAAG,OAAO,EAC9B,OAAO,GAAE,mBAAwB,gBA6BlC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { onCleanup, useBinder } from "@alloy-js/core";
|
|
2
|
+
import { getGlobalNamespace } from "../contexts/global-namespace.js";
|
|
3
|
+
import { useCSharpNamePolicy } from "../name-policy.js";
|
|
4
|
+
import { CSharpClassScope } from "../scopes/class.js";
|
|
5
|
+
import { useCSharpScope, useNamedTypeScope } from "../scopes/contexts.js";
|
|
6
|
+
import { CSharpLexicalScope } from "../scopes/lexical.js";
|
|
7
|
+
import { CSharpMethodScope } from "../scopes/method.js";
|
|
8
|
+
import { CSharpNamedTypeScope } from "../scopes/named-type.js";
|
|
9
|
+
import { CSharpNamespaceScope, useEnclosingNamespaceScope } from "../scopes/namespace.js";
|
|
10
|
+
import { CSharpSourceFileScope } from "../scopes/source-file.js";
|
|
11
|
+
import { CSharpSymbol } from "./csharp.js";
|
|
12
|
+
import { MethodSymbol } from "./method.js";
|
|
13
|
+
import { NamedTypeSymbol } from "./named-type.js";
|
|
14
|
+
import { NamespaceSymbol } from "./namespace.js";
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Create a symbol for a parameter in the current method scope.
|
|
18
|
+
*/
|
|
19
|
+
export function createParameterSymbol(originalName, options = {}) {
|
|
20
|
+
const scope = useCSharpScope();
|
|
21
|
+
if (!(scope instanceof CSharpMethodScope) && !(scope instanceof CSharpClassScope)) {
|
|
22
|
+
throw new Error(`Can't create parameter symbol outside of a method or class scope.`);
|
|
23
|
+
}
|
|
24
|
+
return new CSharpSymbol(originalName, scope.parameters, withNamePolicy(options, "parameter"));
|
|
25
|
+
}
|
|
26
|
+
export function createTypeParameterSymbol(originalName, options = {}) {
|
|
27
|
+
const scope = options.scope ?? useCSharpScope();
|
|
28
|
+
if (!(scope instanceof CSharpMethodScope) && !(scope instanceof CSharpNamedTypeScope)) {
|
|
29
|
+
throw new Error("Can't create a type parameter symbol outside of a method or named type scope.");
|
|
30
|
+
}
|
|
31
|
+
return new CSharpSymbol(originalName, scope.typeParameters, withNamePolicy(options, "type-parameter"));
|
|
32
|
+
}
|
|
33
|
+
export function createFieldSymbol(originalName, options = {}) {
|
|
34
|
+
let nameElement = "class-member-private";
|
|
35
|
+
if (options.accessibility === "public" || options.accessibility === "internal" || options.accessibility === "protected") {
|
|
36
|
+
nameElement = "class-member-public";
|
|
37
|
+
}
|
|
38
|
+
const scope = useNamedTypeScope();
|
|
39
|
+
if (scope.ownerSymbol.typeKind !== "class" && scope.ownerSymbol.typeKind !== "struct") {
|
|
40
|
+
throw new Error(`Can't define a field outside of a class or struct.`);
|
|
41
|
+
}
|
|
42
|
+
return new CSharpSymbol(originalName, scope.members, withNamePolicy(options, nameElement));
|
|
43
|
+
}
|
|
44
|
+
function withCleanup(sym) {
|
|
45
|
+
onCleanup(() => {
|
|
46
|
+
sym.delete();
|
|
47
|
+
});
|
|
48
|
+
return sym;
|
|
49
|
+
}
|
|
50
|
+
export function createNamedTypeSymbol(name, kind, options) {
|
|
51
|
+
const scope = useNamedTypeScope();
|
|
52
|
+
return withCleanup(new NamedTypeSymbol(name, scope.ownerSymbol.members, kind, options));
|
|
53
|
+
}
|
|
54
|
+
export function createNamespaceSymbol(name) {
|
|
55
|
+
const scope = useEnclosingNamespaceScope();
|
|
56
|
+
const nsSymbol = scope?.ownerSymbol ?? getGlobalNamespace(useBinder());
|
|
57
|
+
if (nsSymbol.members.symbolNames.has(name)) {
|
|
58
|
+
return nsSymbol.members.symbolNames.get(name);
|
|
59
|
+
}
|
|
60
|
+
return withCleanup(new NamespaceSymbol(name, nsSymbol));
|
|
61
|
+
}
|
|
62
|
+
export function createMethodSymbol(originalName, options = {}) {
|
|
63
|
+
const scope = useNamedTypeScope();
|
|
64
|
+
if (scope.ownerSymbol.typeKind !== "class" && scope.ownerSymbol.typeKind !== "interface" && scope.ownerSymbol.typeKind !== "struct") {
|
|
65
|
+
throw new Error(`Can't define a method outside of a class, interface, or struct.`);
|
|
66
|
+
}
|
|
67
|
+
return withCleanup(new MethodSymbol(originalName, scope.members, options.methodKind ?? "ordinary", withNamePolicy(options, "class-method")));
|
|
68
|
+
}
|
|
69
|
+
export function createPropertySymbol(name, options) {
|
|
70
|
+
const scope = useNamedTypeScope();
|
|
71
|
+
return withCleanup(new CSharpSymbol(name, scope.members, withNamePolicy(options, "class-property")));
|
|
72
|
+
}
|
|
73
|
+
export function createVariableSymbol(originalName, options = {}) {
|
|
74
|
+
let scope = useCSharpScope();
|
|
75
|
+
if (scope instanceof CSharpNamespaceScope && scope.ownerSymbol === getGlobalNamespace(scope.ownerSymbol.binder)) {
|
|
76
|
+
// allow top-level variables in the global namespace, which are local to the source file.
|
|
77
|
+
scope = scope.parent;
|
|
78
|
+
if (!(scope instanceof CSharpSourceFileScope)) {
|
|
79
|
+
throw new Error("Variable declarations must be in the global namespace or within a lexical scope.");
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
if (!(scope instanceof CSharpLexicalScope)) {
|
|
83
|
+
throw new Error(`Can't create variable symbol outside of a lexical scope, got a ${scope.constructor.name}.`);
|
|
84
|
+
}
|
|
85
|
+
return withCleanup(new CSharpSymbol(originalName, scope.localVariables, withNamePolicy(options, "variable")));
|
|
86
|
+
}
|
|
87
|
+
function withNamePolicy(options, elementType) {
|
|
88
|
+
return {
|
|
89
|
+
...options,
|
|
90
|
+
namePolicy: options.namePolicy ?? useCSharpNamePolicy().for(elementType)
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=factories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["onCleanup","useBinder","getGlobalNamespace","useCSharpNamePolicy","CSharpClassScope","useCSharpScope","useNamedTypeScope","CSharpLexicalScope","CSharpMethodScope","CSharpNamedTypeScope","CSharpNamespaceScope","useEnclosingNamespaceScope","CSharpSourceFileScope","CSharpSymbol","MethodSymbol","NamedTypeSymbol","NamespaceSymbol","createParameterSymbol","originalName","options","scope","Error","parameters","withNamePolicy","createTypeParameterSymbol","typeParameters","createFieldSymbol","nameElement","accessibility","ownerSymbol","typeKind","members","withCleanup","sym","delete","createNamedTypeSymbol","name","kind","createNamespaceSymbol","nsSymbol","symbolNames","has","get","createMethodSymbol","methodKind","createPropertySymbol","createVariableSymbol","binder","parent","constructor","localVariables","elementType","namePolicy","for"],"sources":["../../../src/symbols/factories.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
export * from "./csharp
|
|
1
|
+
export * from "./csharp.js";
|
|
2
|
+
export * from "./factories.js";
|
|
3
|
+
export * from "./method.js";
|
|
4
|
+
export * from "./named-type.js";
|
|
5
|
+
export * from "./namespace.js";
|
|
2
6
|
export * from "./reference.js";
|
|
3
|
-
export * from "./scopes.js";
|
|
4
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/symbols/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/symbols/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
-
export * from "./csharp
|
|
1
|
+
export * from "./csharp.js";
|
|
2
|
+
export * from "./factories.js";
|
|
3
|
+
export * from "./method.js";
|
|
4
|
+
export * from "./named-type.js";
|
|
5
|
+
export * from "./namespace.js";
|
|
2
6
|
export * from "./reference.js";
|
|
3
|
-
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["../../../src/symbols/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc,aAAa;AAC3B,cAAc,gBAAgB;AAC9B,cAAc,aAAa;AAC3B,cAAc,iBAAiB;AAC/B,cAAc,gBAAgB;AAC9B,cAAc,gBAAgB","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Namekey, OutputSpace } from "@alloy-js/core";
|
|
2
|
+
import { CSharpSymbol, CSharpSymbolOptions } from "./csharp.js";
|
|
3
|
+
export type MethodKinds = "ordinary" | "constructor";
|
|
4
|
+
/**
|
|
5
|
+
* A symbol for a method or constructor of a class, interface, or struct.
|
|
6
|
+
*/
|
|
7
|
+
export declare class MethodSymbol extends CSharpSymbol {
|
|
8
|
+
#private;
|
|
9
|
+
readonly symbolKind = "method";
|
|
10
|
+
get methodKind(): MethodKinds;
|
|
11
|
+
constructor(name: string | Namekey, spaces: OutputSpace | undefined, kind: MethodKinds, options?: CSharpSymbolOptions);
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=method.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"method.d.ts","sourceRoot":"","sources":["../../../src/symbols/method.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,aAAa,CAAC;AAErD;;GAEG;AACH,qBAAa,YAAa,SAAQ,YAAY;;IAC5C,SAAgB,UAAU,YAAY;IAGtC,IAAI,UAAU,gBAEb;gBAGC,IAAI,EAAE,MAAM,GAAG,OAAO,EACtB,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,IAAI,EAAE,WAAW,EACjB,OAAO,GAAE,mBAAwB;CAKpC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { CSharpSymbol } from "./csharp.js";
|
|
2
|
+
/**
|
|
3
|
+
* A symbol for a method or constructor of a class, interface, or struct.
|
|
4
|
+
*/
|
|
5
|
+
export class MethodSymbol extends CSharpSymbol {
|
|
6
|
+
symbolKind = "method";
|
|
7
|
+
#methodKind;
|
|
8
|
+
get methodKind() {
|
|
9
|
+
return this.#methodKind;
|
|
10
|
+
}
|
|
11
|
+
constructor(name, spaces, kind, options = {}) {
|
|
12
|
+
super(name, spaces, options);
|
|
13
|
+
this.#methodKind = kind;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=method.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CSharpSymbol","MethodSymbol","symbolKind","methodKind","constructor","name","spaces","kind","options"],"sources":["../../../src/symbols/method.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,YAAY,QAA6B,aAAa;AAI/D;AACA;AACA;AACA,OAAO,MAAMC,YAAY,SAASD,YAAY,CAAC;EAC7BE,UAAU,GAAG,QAAQ;EAErC,CAACC,UAAU;EACX,IAAIA,UAAUA,CAAA,EAAG;IACf,OAAO,IAAI,CAAC,CAACA,UAAU;EACzB;EAEAC,WAAWA,CACTC,IAAsB,EACtBC,MAA+B,EAC/BC,IAAiB,EACjBC,OAA4B,GAAG,CAAC,CAAC,EACjC;IACA,KAAK,CAACH,IAAI,EAAEC,MAAM,EAAEE,OAAO,CAAC;IAC5B,IAAI,CAAC,CAACL,UAAU,GAAGI,IAAI;EACzB;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Namekey, OutputSpace, OutputSymbolOptions } from "@alloy-js/core";
|
|
2
|
+
import { CSharpSymbol } from "./csharp.js";
|
|
3
|
+
export type NamedTypeTypeKind = "class" | "interface" | "enum" | "namespace" | "struct" | "record";
|
|
4
|
+
export type NamedTypeSymbolKind = "named-type" | "namespace";
|
|
5
|
+
/**
|
|
6
|
+
* A symbol for a named type in C# such as a class, interface, enum, and so
|
|
7
|
+
* forth. Named types are generally defined in a namespace, and can have members
|
|
8
|
+
* of their own.
|
|
9
|
+
*/
|
|
10
|
+
export declare class NamedTypeSymbol extends CSharpSymbol {
|
|
11
|
+
#private;
|
|
12
|
+
readonly symbolKind: NamedTypeSymbolKind;
|
|
13
|
+
static readonly memberSpaces: string[];
|
|
14
|
+
constructor(name: string | Namekey, spaces: OutputSpace[] | OutputSpace | undefined, kind: NamedTypeTypeKind, options?: OutputSymbolOptions);
|
|
15
|
+
get typeKind(): NamedTypeTypeKind;
|
|
16
|
+
copy(): NamedTypeSymbol;
|
|
17
|
+
get members(): import("@alloy-js/core").OutputMemberSpace;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=named-type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"named-type.d.ts","sourceRoot":"","sources":["../../../src/symbols/named-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,MAAM,MAAM,iBAAiB,GACzB,OAAO,GACP,WAAW,GACX,MAAM,GACN,WAAW,GACX,QAAQ,GACR,QAAQ,CAAC;AACb,MAAM,MAAM,mBAAmB,GAAG,YAAY,GAAG,WAAW,CAAC;AAE7D;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,YAAY;;IAC/C,SAAgB,UAAU,EAAE,mBAAmB,CAAgB;IAC/D,gBAAuB,YAAY,WAAe;gBAGhD,IAAI,EAAE,MAAM,GAAG,OAAO,EACtB,MAAM,EAAE,WAAW,EAAE,GAAG,WAAW,GAAG,SAAS,EAC/C,IAAI,EAAE,iBAAiB,EACvB,OAAO,CAAC,EAAE,mBAAmB;IAO/B,IAAI,QAAQ,sBAEX;IAED,IAAI;IAYJ,IAAI,OAAO,+CAEV;CACF"}
|