Title: Class static abstract properties on interfaces don't work · Issue #21059 · PowerShell/PowerShell · GitHub
Open Graph Title: Class static abstract properties on interfaces don't work · Issue #21059 · PowerShell/PowerShell
X Title: Class static abstract properties on interfaces don't work · Issue #21059 · PowerShell/PowerShell
Description: Prerequisites Write a descriptive title. Make sure you are able to repro it on the latest released version Search the existing issues. Refer to the FAQ. Refer to Differences between Windows PowerShell 5.1 and PowerShell. Steps to reprodu...
Open Graph Description: Prerequisites Write a descriptive title. Make sure you are able to repro it on the latest released version Search the existing issues. Refer to the FAQ. Refer to Differences between Windows PowerSh...
X Description: Prerequisites Write a descriptive title. Make sure you are able to repro it on the latest released version Search the existing issues. Refer to the FAQ. Refer to Differences between Windows PowerSh...
Opengraph URL: https://github.com/PowerShell/PowerShell/issues/21059
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Class static abstract properties on interfaces don't work","articleBody":"### Prerequisites\n\n- [X] Write a descriptive title.\n- [X] Make sure you are able to repro it on the [latest released version](https://github.com/PowerShell/PowerShell/releases)\n- [X] Search the existing issues.\n- [X] Refer to the [FAQ](https://github.com/PowerShell/PowerShell/blob/master/docs/FAQ.md).\n- [X] Refer to [Differences between Windows PowerShell 5.1 and PowerShell](https://learn.microsoft.com/powershell/scripting/whats-new/differences-from-windows-powershell).\n\n### Steps to reproduce\n\nRun the following\r\n\r\n```powershell\r\nAdd-Type -TypeDefinition @'\r\npublic interface IProperty\r\n{\r\n static abstract int Id { get; }\r\n}\r\n\r\npublic class CSharpProperty : IProperty\r\n{\r\n public static int Id { get=\u003e 1; }\r\n}\r\n'@\r\n\r\nclass PwshProperty : IProperty {\r\n static [int] $Id = 1\r\n}\r\n```\n\n### Expected behavior\n\n```console\nYou can create the class then do `[PwshProperty]::Id` to return `1`.\n```\n\n\n### Actual behavior\n\n```console\nParentContainsErrorRecordException: An error occurred while creating the pipeline.\n```\n\n\n### Error details\n\n```console\nType : System.Management.Automation.RuntimeException\r\nErrorRecord :\r\n Exception :\r\n Type : System.Management.Automation.ParentContainsErrorRecordException\r\n Message : An error occurred while creating the pipeline.\r\n HResult : -2146233087\r\n CategoryInfo : NotSpecified: (:) [], ParentContainsErrorRecordException\r\n FullyQualifiedErrorId : RuntimeException\r\nTargetSite :\r\n Name : Invoke\r\n DeclaringType : System.Management.Automation.Runspaces.PipelineBase, System.Management.Automation, Version=7.4.0.500, Culture=neutral, PublicKeyToken=31bf3856ad364e35\r\n MemberType : Method\r\n Module : System.Management.Automation.dll\r\nMessage : An error occurred while creating the pipeline.\r\nInnerException :\r\n Type : System.ArgumentException\r\n Message : Method cannot be both static and virtual.\r\n TargetSite : Void .ctor(System.String, System.Reflection.MethodAttributes, System.Reflection.CallingConventions, System.Type, System.Type[], System.Type[], System.Type[],\r\nSystem.Type[][], System.Type[][], System.Reflection.Emit.RuntimeModuleBuilder, System.Reflection.Emit.RuntimeTypeBuilder)\r\n Source : System.Private.CoreLib\r\n HResult : -2147024809\r\n StackTrace :\r\n at System.Reflection.Emit.RuntimeMethodBuilder..ctor(String name, MethodAttributes attributes, CallingConventions callingConvention, Type returnType, Type[]\r\nreturnTypeRequiredCustomModifiers, Type[] returnTypeOptionalCustomModifiers, Type[] parameterTypes, Type[][] parameterTypeRequiredCustomModifiers, Type[][]\r\nparameterTypeOptionalCustomModifiers, RuntimeModuleBuilder mod, RuntimeTypeBuilder type)\r\n at System.Reflection.Emit.RuntimeTypeBuilder.DefineMethodCore(String name, MethodAttributes attributes, CallingConventions callingConvention, Type returnType, Type[]\r\nreturnTypeRequiredCustomModifiers, Type[] returnTypeOptionalCustomModifiers, Type[] parameterTypes, Type[][] parameterTypeRequiredCustomModifiers, Type[][]\r\nparameterTypeOptionalCustomModifiers)\r\n at System.Reflection.Emit.TypeBuilder.DefineMethod(String name, MethodAttributes attributes, Type returnType, Type[] parameterTypes)\r\n at System.Management.Automation.Language.TypeDefiner.DefineTypeHelper.EmitPropertyIl(PropertyMemberAst propertyMemberAst, Type type)\r\n at System.Management.Automation.Language.TypeDefiner.DefineTypeHelper.DefineProperty(PropertyMemberAst propertyMemberAst)\r\n at System.Management.Automation.Language.TypeDefiner.DefineTypeHelper.DefineMembers()\r\n at System.Management.Automation.Language.TypeDefiner.DefineTypes(Parser parser, Ast rootAst, TypeDefinitionAst[] typeDefinitions)\r\n at System.Management.Automation.Language.Compiler.DefinePowerShellTypes(Ast rootForDefiningTypes, TypeDefinitionAst[] typeAsts)\r\n at System.Management.Automation.Language.Compiler.GenerateTypesAndUsings(ScriptBlockAst rootForDefiningTypesAndUsings, List`1 exprs)\r\n at System.Management.Automation.Language.Compiler.CompileSingleLambda(ReadOnlyCollection`1 statements, ReadOnlyCollection`1 traps, String funcName, IScriptExtent entryExtent,\r\nIScriptExtent exitExtent, ScriptBlockAst rootForDefiningTypesAndUsings)\r\n at System.Management.Automation.Language.Compiler.CompileNamedBlock(NamedBlockAst namedBlockAst, String funcName, ScriptBlockAst rootForDefiningTypes)\r\n at System.Management.Automation.Language.Compiler.VisitScriptBlock(ScriptBlockAst scriptBlockAst)\r\n at System.Management.Automation.Language.Compiler.Compile(CompiledScriptBlockData scriptBlock, Boolean optimize)\r\n at System.Management.Automation.CompiledScriptBlockData.ReallyCompile(Boolean optimize)\r\n at System.Management.Automation.CompiledScriptBlockData.CompileUnoptimized()\r\n at System.Management.Automation.CompiledScriptBlockData.Compile(Boolean optimized)\r\n at System.Management.Automation.DlrScriptCommandProcessor.Init()\r\n at System.Management.Automation.DlrScriptCommandProcessor..ctor(ScriptBlock scriptBlock, ExecutionContext context, Boolean useNewScope, CommandOrigin origin,\r\nSessionStateInternal sessionState, Object dollarUnderbar)\r\n at System.Management.Automation.Runspaces.Command.CreateCommandProcessor(ExecutionContext executionContext, Boolean addToHistory, CommandOrigin origin)\r\n at System.Management.Automation.Runspaces.LocalPipeline.CreatePipelineProcessor()\r\nSource : System.Management.Automation\r\nHResult : -2146233087\r\nStackTrace :\r\n at System.Management.Automation.Runspaces.PipelineBase.Invoke(IEnumerable input)\r\n at Microsoft.PowerShell.Executor.ExecuteCommandHelper(Pipeline tempPipeline, Exception\u0026 exceptionThrown, ExecutionOptions options)\n```\n\n\n### Environment data\n\n```powershell\nName Value\r\n---- -----\r\nPSVersion 7.4.0\r\nPSEdition Core\r\nGitCommitId 7.4.0\r\nOS Arch Linux\r\nPlatform Unix\r\nPSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}\r\nPSRemotingProtocolVersion 2.3\r\nSerializationVersion 1.1.0.1\r\nWSManStackVersion 3.0\n```\n\n\n### Visuals\n\n_No response_","author":{"url":"https://github.com/jborean93","@type":"Person","name":"jborean93"},"datePublished":"2024-01-13T04:50:33.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":3},"url":"https://github.com/21059/PowerShell/issues/21059"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:c62c301f-815c-3e74-5a65-59798813cb39 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | B2D8:3FCE56:4B19CFB:69BDC3F:6A56FD00 |
| html-safe-nonce | 2b249350219a4b4e51edef7a52a6b7834a3cae52a978bcc7bc918179a7eb0ac9 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCMkQ4OjNGQ0U1Njo0QjE5Q0ZCOjY5QkRDM0Y6NkE1NkZEMDAiLCJ2aXNpdG9yX2lkIjoiODIwMTI0NDMxODM5ODYxMDY4OCIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 1358097ae3a6e693db605273f398c92cbee5db802b91cee0e37efbfcaee9ba73 |
| hovercard-subject-tag | issue:2080074936 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/PowerShell/PowerShell/21059/issue_layout |
| twitter:image | https://opengraph.githubassets.com/3c02ab2c5131658e2160fec1c235acc5fac5dcd848afb3ab6392e7a95315c46f/PowerShell/PowerShell/issues/21059 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/3c02ab2c5131658e2160fec1c235acc5fac5dcd848afb3ab6392e7a95315c46f/PowerShell/PowerShell/issues/21059 |
| og:image:alt | Prerequisites Write a descriptive title. Make sure you are able to repro it on the latest released version Search the existing issues. Refer to the FAQ. Refer to Differences between Windows PowerSh... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | jborean93 |
| hostname | github.com |
| expected-hostname | github.com |
| None | 4eb29e5f807bd95e41196adfbc6d28f9af12d89830d8b684f3e871774ddff2fc |
| turbo-cache-control | no-preview |
| go-import | github.com/PowerShell/PowerShell git https://github.com/PowerShell/PowerShell.git |
| octolytics-dimension-user_id | 11524380 |
| octolytics-dimension-user_login | PowerShell |
| octolytics-dimension-repository_id | 49609581 |
| octolytics-dimension-repository_nwo | PowerShell/PowerShell |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 49609581 |
| octolytics-dimension-repository_network_root_nwo | PowerShell/PowerShell |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | b056788a129fb0194b61f2ebb4c43f6a9f4dfd27 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width