Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updating Param metadata table via edit and continue not having any effect #55058

Closed
davidwengier opened this issue Jul 2, 2021 · 6 comments
Closed
Assignees
Milestone

Comments

@davidwengier
Copy link
Contributor

I'm trying to add support in Roslyn to rename method parameters in EnC/Hot Reload but I'm not seeing any changes having any effect in the runtime, when checking via reflection. If it helped I have confirmed metadata update attributes are being processed.

Here is the important bits of metadata. Full output from mdv at the bottom.

The initial baseline has the methoddef a row 2, and one param at row 1:

Method (0x06, 0x1C):
==============================================================================================================================================================================================================================================
   Name           Signature             RVA         Parameters             GenericParameters  Attributes                                                                ImplAttributes  ImportAttributes  ImportName  ImportModule     
==============================================================================================================================================================================================================================================
2: 'F' (#37)      string (int32) (#25)  0x00002054  0x08000001-0x08000001  nil                0x00000091 (PrivateScope, Private, Static, HideBySig)                     0               0                 nil         nil (ModuleRef)  

Param (0x08):
==============================================
   Name       Seq#  Attributes  Marshalling  
==============================================
1: 'a' (#39)  1     0           nil          

In the delta we emit an update to the method with a nil value for Param because it hasn't changed (we don't allow adding or removing parameters), and an emit of the new param row:

Method (0x06, 0x1C):
==================================================================================================================================================================================================================
   Name          Signature                RVA         Parameters  GenericParameters  Attributes                                             ImplAttributes  ImportAttributes  ImportName  ImportModule     
==================================================================================================================================================================================================================
1: 'F' (#12d/7)  string (int32) (#6e/12)  0x00000004  nil         nil                0x00000091 (PrivateScope, Private, Static, HideBySig)  0               0                 nil         nil (ModuleRef)  

Param (0x08):
==================================================
   Name           Seq#  Attributes  Marshalling  
==================================================
1: 'x' (#17b/55)  1     0           nil          

The EncLog and EncMap are below, but you can see they indicate that the Param row is an update for row 1:

EnC Log (0x1e):
=========================================
   Entity                      Operation  
=========================================
1: 0x23000002 (AssemblyRef)    0          
2: 0x0a000006 (MemberRef)      0          
3: 0x01000007 (TypeRef)        0          
4: 0x01000008 (TypeRef)        0          
5: 0x11000002 (StandAloneSig)  0          
6: 0x06000002 (MethodDef)      0          
7: 0x08000001 (Param)          0          

EnC Map (0x1f):
=======================================================
   Entity                      Gen  Row       Edit    
=======================================================
1: 0x01000007 (TypeRef)        1    0x000001  add     
2: 0x01000008 (TypeRef)        1    0x000002  add     
3: 0x06000002 (MethodDef)      0    0x000002  update  
4: 0x08000001 (Param)          0    0x000001  update  
5: 0x0a000006 (MemberRef)      1    0x000001  add     
6: 0x11000002 (StandAloneSig)  1    0x000001  add     
7: 0x23000002 (AssemblyRef)    1    0x000001  add     

After applying this change reflection still returns the old name for the parameter, as does the debugger in an F5 scenario.

I also tried issuing new attributes and updating the Param column but that didn't work either. If there is any approach that would work here, please let me know.

FYI @tmat @tommcdon @mikem8361 @lambdageek

Full metadata from a parameter rename of a method F in class C
>>>
>>> Generation 0:
>>>

Module (0x00):
===========================================================================================================================
   Gen  Name                                              Mvid                                         EncId  EncBaseId  
===========================================================================================================================
1: 0    '9bf51a04-1a01-4b05-b9f1-08915c4a9d07.exe' (#99)  {d513abfc-5842-4d24-8223-1d11c98fd177} (#1)  nil    nil        

TypeRef (0x01):
===============================================================================================================
   Scope                     Name                                     Namespace                                
===============================================================================================================
1: 0x23000001 (AssemblyRef)  'CompilationRelaxationsAttribute' (#5b)  'System.Runtime.CompilerServices' (#f0)  
2: 0x23000001 (AssemblyRef)  'RuntimeCompatibilityAttribute' (#7b)    'System.Runtime.CompilerServices' (#f0)  
3: 0x23000001 (AssemblyRef)  'DebuggableAttribute' (#47)              'System.Diagnostics' (#dd)               
4: 0x01000003 (TypeRef)      'DebuggingModes' (#110)                  nil                                      
5: 0x23000001 (AssemblyRef)  'Object' (#11f)                          'System' (#cb)                           
6: 0x23000001 (AssemblyRef)  'Int32' (#1)                             'System' (#cb)                           

TypeDef (0x02):
=============================================================================================================================================================================
   Name              Namespace  EnclosingType  BaseType              Interfaces  Fields  Methods                Attributes                    ClassSize  PackingSize  
=============================================================================================================================================================================
1: '<Module>' (#2c)  nil        nil (TypeDef)  nil (TypeDef)         nil         nil     nil                    0                             n/a        n/a          
2: 'C' (#35)         nil        nil (TypeDef)  0x01000005 (TypeRef)  nil         nil     0x06000001-0x06000003  0x00100000 (BeforeFieldInit)  n/a        n/a          

Method (0x06, 0x1C):
==============================================================================================================================================================================================================================================
   Name           Signature             RVA         Parameters             GenericParameters  Attributes                                                                ImplAttributes  ImportAttributes  ImportName  ImportModule     
==============================================================================================================================================================================================================================================
1: 'Main' (#d2)   void () (#21)         0x00002050  nil                    nil                0x00000091 (PrivateScope, Private, Static, HideBySig)                     0               0                 nil         nil (ModuleRef)  
2: 'F' (#37)      string (int32) (#25)  0x00002054  0x08000001-0x08000001  nil                0x00000091 (PrivateScope, Private, Static, HideBySig)                     0               0                 nil         nil (ModuleRef)  
3: '.ctor' (#d7)  void () (#6)          0x0000206D  nil                    nil                0x00001886 (PrivateScope, Public, HideBySig, SpecialName, RTSpecialName)  0               0                 nil         nil (ModuleRef)  

Param (0x08):
==============================================
   Name       Seq#  Attributes  Marshalling  
==============================================
1: 'a' (#39)  1     0           nil          

MemberRef (0x0a):
==================================================================
   Parent                Name              Signature              
==================================================================
1: 0x01000001 (TypeRef)  '.ctor' (#d7)     void (int32) (#1)      
2: 0x01000002 (TypeRef)  '.ctor' (#d7)     void () (#6)           
3: 0x01000003 (TypeRef)  '.ctor' (#d7)     void (typeref#4) (#a)  
4: 0x01000006 (TypeRef)  'ToString' (#c2)  string () (#14)        
5: 0x01000005 (TypeRef)  '.ctor' (#d7)     void () (#6)           

CustomAttribute (0x0c):
===================================================================================================================================================
   Parent                 Constructor             Value                                                                                            
===================================================================================================================================================
1: 0x20000001 (Assembly)  0x0a000001 (MemberRef)  01-00-08-00-00-00-00-00 (#2a)                                                                    
2: 0x20000001 (Assembly)  0x0a000002 (MemberRef)  01-00-01-00-54-02-16-57-72-61-70-4E-6F-6E-45-78-63-65-70-74-69-6F-6E-54-68-72-6F-77-73-01 (#33)  
3: 0x20000001 (Assembly)  0x0a000003 (MemberRef)  01-00-07-01-00-00-00-00 (#52)                                                                    

StandAloneSig (0x11):
=====================
   Signature     
=====================
1: string (#10)  

Assembly (0x20):
==========================================================================================================
   Name                                         Version  Culture  PublicKey  Flags  HashAlgorithm      
==========================================================================================================
1: '9bf51a04-1a01-4b05-b9f1-08915c4a9d07' (#7)  0.0.0.0  nil      nil        0      0x00008004 (Sha1)  

AssemblyRef (0x23):
==================================================================================
   Name                 Version  Culture  PublicKeyOrToken               Flags  
==================================================================================
1: 'netstandard' (#3b)  2.0.0.0  nil      CC-7B-13-FF-CD-2D-DD-51 (#18)  0      

#US (size = 4):
  0: ''
  1: ''
  2: ''
  3: ''

#String (size = 294):
  0: ''
  1: 'Int32'
  7: '9bf51a04-1a01-4b05-b9f1-08915c4a9d07'
  2c: '<Module>'
  35: 'C'
  37: 'F'
  39: 'a'
  3b: 'netstandard'
  47: 'DebuggableAttribute'
  5b: 'CompilationRelaxationsAttribute'
  7b: 'RuntimeCompatibilityAttribute'
  99: '9bf51a04-1a01-4b05-b9f1-08915c4a9d07.exe'
  c2: 'ToString'
  cb: 'System'
  d2: 'Main'
  d7: '.ctor'
  dd: 'System.Diagnostics'
  f0: 'System.Runtime.CompilerServices'
  110: 'DebuggingModes'
  11f: 'Object'

#Blob (size = 92):
  0: 
  1 (MemberRefSignature): 20-01-01-08
  6 (MemberRefSignature): 20-00-01
  a (MemberRefSignature): 20-01-01-11-11
  10 (StandAloneSignature): 07-01-0E
  14 (MemberRefSignature): 20-00-0E
  18 (Key): CC-7B-13-FF-CD-2D-DD-51
  21 (MethodSignature): 00-00-01
  25 (MethodSignature): 00-01-0E-08
  2a (CustomAttribute): 01-00-08-00-00-00-00-00
  33 (CustomAttribute): 01-00-01-00-54-02-16-57-72-61-70-4E-6F-6E-45-78-63-65-70-74-69-6F-6E-54-68-72-6F-77-73-01
  52 (CustomAttribute): 01-00-07-01-00-00-00-00
  5b: 

Sizes:
  Key: 8 bytes
  MethodSignature: 7 bytes
  MemberRefSignature: 15 bytes
  StandAloneSignature: 3 bytes
  CustomAttribute: 46 bytes
#Guid (size = 16):
  1: {d513abfc-5842-4d24-8223-1d11c98fd177}

>>>
>>> Generation 1:
>>>

Module (0x00):
=====================================================================================================================================================================
   Gen  Name                                                  Mvid                                         EncId                                        EncBaseId  
=====================================================================================================================================================================
1: 1    '9bf51a04-1a01-4b05-b9f1-08915c4a9d07.exe' (#13b/15)  {d513abfc-5842-4d24-8223-1d11c98fd177} (#2)  {19f6809d-2a17-4a30-91b9-f45590969e0a} (#3)  nil        

TypeRef (0x01):
=====================================================================
   Scope                     Name                Namespace           
=====================================================================
1: 0x23000002 (AssemblyRef)  'Object' (#174/4e)  'System' (#16d/47)  
2: 0x23000002 (AssemblyRef)  'Int32' (#127/1)    'System' (#16d/47)  

Method (0x06, 0x1C):
==================================================================================================================================================================================================================
   Name          Signature                RVA         Parameters  GenericParameters  Attributes                                             ImplAttributes  ImportAttributes  ImportName  ImportModule     
==================================================================================================================================================================================================================
1: 'F' (#12d/7)  string (int32) (#6e/12)  0x00000004  nil         nil                0x00000091 (PrivateScope, Private, Static, HideBySig)  0               0                 nil         nil (ModuleRef)  

Param (0x08):
==================================================
   Name           Seq#  Attributes  Marshalling  
==================================================
1: 'x' (#17b/55)  1     0           nil          

MemberRef (0x0a):
==================================================================
   Parent                Name                  Signature          
==================================================================
1: 0x01000008 (TypeRef)  'ToString' (#164/3e)  string () (#61/5)  

StandAloneSig (0x11):
=====================
   Signature       
=====================
1: string (#5d/1)  

EnC Log (0x1e):
=========================================
   Entity                      Operation  
=========================================
1: 0x23000002 (AssemblyRef)    0          
2: 0x0a000006 (MemberRef)      0          
3: 0x01000007 (TypeRef)        0          
4: 0x01000008 (TypeRef)        0          
5: 0x11000002 (StandAloneSig)  0          
6: 0x06000002 (MethodDef)      0          
7: 0x08000001 (Param)          0          

EnC Map (0x1f):
=======================================================
   Entity                      Gen  Row       Edit    
=======================================================
1: 0x01000007 (TypeRef)        1    0x000001  add     
2: 0x01000008 (TypeRef)        1    0x000002  add     
3: 0x06000002 (MethodDef)      0    0x000002  update  
4: 0x08000001 (Param)          0    0x000001  update  
5: 0x0a000006 (MemberRef)      1    0x000001  add     
6: 0x11000002 (StandAloneSig)  1    0x000001  add     
7: 0x23000002 (AssemblyRef)    1    0x000001  add     

AssemblyRef (0x23):
=======================================================================================
   Name                    Version  Culture  PublicKeyOrToken                 Flags  
=======================================================================================
1: 'netstandard' (#12f/9)  2.0.0.0  nil      CC-7B-13-FF-CD-2D-DD-51 (#65/9)  0      

#US (size = 4):
  0: ''
  1: ''
  2: ''
  3: ''

#String (size = 87):
  0: ''
  1: 'Int32'
  7: 'F'
  9: 'netstandard'
  15: '9bf51a04-1a01-4b05-b9f1-08915c4a9d07.exe'
  3e: 'ToString'
  47: 'System'
  4e: 'Object'
  55: 'x'

#Blob (size = 24):
  0: 
  1 (MemberRefSignature): 07-01-0E
  5: 20-00-0E
  9: CC-7B-13-FF-CD-2D-DD-51
  12: 00-01-0E-08
  17: 

Sizes:
  MemberRefSignature: 3 bytes
#Guid (size = 48):
  1: {00000000-0000-0000-0000-000000000000}
  2: {d513abfc-5842-4d24-8223-1d11c98fd177}
  3: {19f6809d-2a17-4a30-91b9-f45590969e0a}

@dotnet-issue-labeler dotnet-issue-labeler bot added the untriaged New issue has not been triaged by the area owner label Jul 2, 2021
@dotnet-issue-labeler
Copy link

I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label.

@jkotas
Copy link
Member

jkotas commented Jul 2, 2021

I'm not seeing any changes having any effect in the runtime, when checking via reflection.

What is the exact code that you are running to verify whether the changes have effect?

The reflection object model (MethodInfo, FieldInfo, ParameterInfo, ...) are not updated for metadata edits in-place. You have to re-fetch the *Infos to see the updated values.

@davidwengier
Copy link
Contributor Author

I'm using a web project and using Hot Reload from an experimental instance of VS, with my build of Roslyn, and on page load I have this code, so it should be a valid test:

foreach (var param in this.GetType().GetMethod("Goo", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public).GetParameters())
{
    result += param.Name + ", ";
}

@ghost
Copy link

ghost commented Jul 2, 2021

Tagging subscribers to this area: @tommcdon
See info in area-owners.md if you want to be subscribed.

Issue Details

I'm trying to add support in Roslyn to rename method parameters in EnC/Hot Reload but I'm not seeing any changes having any effect in the runtime, when checking via reflection. If it helped I have confirmed metadata update attributes are being processed.

Here is the important bits of metadata. Full output from mdv at the bottom.

The initial baseline has the methoddef a row 2, and one param at row 1:

Method (0x06, 0x1C):
==============================================================================================================================================================================================================================================
   Name           Signature             RVA         Parameters             GenericParameters  Attributes                                                                ImplAttributes  ImportAttributes  ImportName  ImportModule     
==============================================================================================================================================================================================================================================
2: 'F' (#37)      string (int32) (#25)  0x00002054  0x08000001-0x08000001  nil                0x00000091 (PrivateScope, Private, Static, HideBySig)                     0               0                 nil         nil (ModuleRef)  

Param (0x08):
==============================================
   Name       Seq#  Attributes  Marshalling  
==============================================
1: 'a' (#39)  1     0           nil          

In the delta we emit an update to the method with a nil value for Param because it hasn't changed (we don't allow adding or removing parameters), and an emit of the new param row:

Method (0x06, 0x1C):
==================================================================================================================================================================================================================
   Name          Signature                RVA         Parameters  GenericParameters  Attributes                                             ImplAttributes  ImportAttributes  ImportName  ImportModule     
==================================================================================================================================================================================================================
1: 'F' (#12d/7)  string (int32) (#6e/12)  0x00000004  nil         nil                0x00000091 (PrivateScope, Private, Static, HideBySig)  0               0                 nil         nil (ModuleRef)  

Param (0x08):
==================================================
   Name           Seq#  Attributes  Marshalling  
==================================================
1: 'x' (#17b/55)  1     0           nil          

The EncLog and EncMap are below, but you can see they indicate that the Param row is an update for row 1:

EnC Log (0x1e):
=========================================
   Entity                      Operation  
=========================================
1: 0x23000002 (AssemblyRef)    0          
2: 0x0a000006 (MemberRef)      0          
3: 0x01000007 (TypeRef)        0          
4: 0x01000008 (TypeRef)        0          
5: 0x11000002 (StandAloneSig)  0          
6: 0x06000002 (MethodDef)      0          
7: 0x08000001 (Param)          0          

EnC Map (0x1f):
=======================================================
   Entity                      Gen  Row       Edit    
=======================================================
1: 0x01000007 (TypeRef)        1    0x000001  add     
2: 0x01000008 (TypeRef)        1    0x000002  add     
3: 0x06000002 (MethodDef)      0    0x000002  update  
4: 0x08000001 (Param)          0    0x000001  update  
5: 0x0a000006 (MemberRef)      1    0x000001  add     
6: 0x11000002 (StandAloneSig)  1    0x000001  add     
7: 0x23000002 (AssemblyRef)    1    0x000001  add     

After applying this change reflection still returns the old name for the parameter, as does the debugger in an F5 scenario.

I also tried issuing new attributes and updating the Param column but that didn't work either. If there is any approach that would work here, please let me know.

FYI @tmat @tommcdon @mikem8361 @lambdageek

Full metadata from a parameter rename of a method F in class C
>>>
>>> Generation 0:
>>>

Module (0x00):
===========================================================================================================================
   Gen  Name                                              Mvid                                         EncId  EncBaseId  
===========================================================================================================================
1: 0    '9bf51a04-1a01-4b05-b9f1-08915c4a9d07.exe' (#99)  {d513abfc-5842-4d24-8223-1d11c98fd177} (#1)  nil    nil        

TypeRef (0x01):
===============================================================================================================
   Scope                     Name                                     Namespace                                
===============================================================================================================
1: 0x23000001 (AssemblyRef)  'CompilationRelaxationsAttribute' (#5b)  'System.Runtime.CompilerServices' (#f0)  
2: 0x23000001 (AssemblyRef)  'RuntimeCompatibilityAttribute' (#7b)    'System.Runtime.CompilerServices' (#f0)  
3: 0x23000001 (AssemblyRef)  'DebuggableAttribute' (#47)              'System.Diagnostics' (#dd)               
4: 0x01000003 (TypeRef)      'DebuggingModes' (#110)                  nil                                      
5: 0x23000001 (AssemblyRef)  'Object' (#11f)                          'System' (#cb)                           
6: 0x23000001 (AssemblyRef)  'Int32' (#1)                             'System' (#cb)                           

TypeDef (0x02):
=============================================================================================================================================================================
   Name              Namespace  EnclosingType  BaseType              Interfaces  Fields  Methods                Attributes                    ClassSize  PackingSize  
=============================================================================================================================================================================
1: '<Module>' (#2c)  nil        nil (TypeDef)  nil (TypeDef)         nil         nil     nil                    0                             n/a        n/a          
2: 'C' (#35)         nil        nil (TypeDef)  0x01000005 (TypeRef)  nil         nil     0x06000001-0x06000003  0x00100000 (BeforeFieldInit)  n/a        n/a          

Method (0x06, 0x1C):
==============================================================================================================================================================================================================================================
   Name           Signature             RVA         Parameters             GenericParameters  Attributes                                                                ImplAttributes  ImportAttributes  ImportName  ImportModule     
==============================================================================================================================================================================================================================================
1: 'Main' (#d2)   void () (#21)         0x00002050  nil                    nil                0x00000091 (PrivateScope, Private, Static, HideBySig)                     0               0                 nil         nil (ModuleRef)  
2: 'F' (#37)      string (int32) (#25)  0x00002054  0x08000001-0x08000001  nil                0x00000091 (PrivateScope, Private, Static, HideBySig)                     0               0                 nil         nil (ModuleRef)  
3: '.ctor' (#d7)  void () (#6)          0x0000206D  nil                    nil                0x00001886 (PrivateScope, Public, HideBySig, SpecialName, RTSpecialName)  0               0                 nil         nil (ModuleRef)  

Param (0x08):
==============================================
   Name       Seq#  Attributes  Marshalling  
==============================================
1: 'a' (#39)  1     0           nil          

MemberRef (0x0a):
==================================================================
   Parent                Name              Signature              
==================================================================
1: 0x01000001 (TypeRef)  '.ctor' (#d7)     void (int32) (#1)      
2: 0x01000002 (TypeRef)  '.ctor' (#d7)     void () (#6)           
3: 0x01000003 (TypeRef)  '.ctor' (#d7)     void (typeref#4) (#a)  
4: 0x01000006 (TypeRef)  'ToString' (#c2)  string () (#14)        
5: 0x01000005 (TypeRef)  '.ctor' (#d7)     void () (#6)           

CustomAttribute (0x0c):
===================================================================================================================================================
   Parent                 Constructor             Value                                                                                            
===================================================================================================================================================
1: 0x20000001 (Assembly)  0x0a000001 (MemberRef)  01-00-08-00-00-00-00-00 (#2a)                                                                    
2: 0x20000001 (Assembly)  0x0a000002 (MemberRef)  01-00-01-00-54-02-16-57-72-61-70-4E-6F-6E-45-78-63-65-70-74-69-6F-6E-54-68-72-6F-77-73-01 (#33)  
3: 0x20000001 (Assembly)  0x0a000003 (MemberRef)  01-00-07-01-00-00-00-00 (#52)                                                                    

StandAloneSig (0x11):
=====================
   Signature     
=====================
1: string (#10)  

Assembly (0x20):
==========================================================================================================
   Name                                         Version  Culture  PublicKey  Flags  HashAlgorithm      
==========================================================================================================
1: '9bf51a04-1a01-4b05-b9f1-08915c4a9d07' (#7)  0.0.0.0  nil      nil        0      0x00008004 (Sha1)  

AssemblyRef (0x23):
==================================================================================
   Name                 Version  Culture  PublicKeyOrToken               Flags  
==================================================================================
1: 'netstandard' (#3b)  2.0.0.0  nil      CC-7B-13-FF-CD-2D-DD-51 (#18)  0      

#US (size = 4):
  0: ''
  1: ''
  2: ''
  3: ''

#String (size = 294):
  0: ''
  1: 'Int32'
  7: '9bf51a04-1a01-4b05-b9f1-08915c4a9d07'
  2c: '<Module>'
  35: 'C'
  37: 'F'
  39: 'a'
  3b: 'netstandard'
  47: 'DebuggableAttribute'
  5b: 'CompilationRelaxationsAttribute'
  7b: 'RuntimeCompatibilityAttribute'
  99: '9bf51a04-1a01-4b05-b9f1-08915c4a9d07.exe'
  c2: 'ToString'
  cb: 'System'
  d2: 'Main'
  d7: '.ctor'
  dd: 'System.Diagnostics'
  f0: 'System.Runtime.CompilerServices'
  110: 'DebuggingModes'
  11f: 'Object'

#Blob (size = 92):
  0: 
  1 (MemberRefSignature): 20-01-01-08
  6 (MemberRefSignature): 20-00-01
  a (MemberRefSignature): 20-01-01-11-11
  10 (StandAloneSignature): 07-01-0E
  14 (MemberRefSignature): 20-00-0E
  18 (Key): CC-7B-13-FF-CD-2D-DD-51
  21 (MethodSignature): 00-00-01
  25 (MethodSignature): 00-01-0E-08
  2a (CustomAttribute): 01-00-08-00-00-00-00-00
  33 (CustomAttribute): 01-00-01-00-54-02-16-57-72-61-70-4E-6F-6E-45-78-63-65-70-74-69-6F-6E-54-68-72-6F-77-73-01
  52 (CustomAttribute): 01-00-07-01-00-00-00-00
  5b: 

Sizes:
  Key: 8 bytes
  MethodSignature: 7 bytes
  MemberRefSignature: 15 bytes
  StandAloneSignature: 3 bytes
  CustomAttribute: 46 bytes
#Guid (size = 16):
  1: {d513abfc-5842-4d24-8223-1d11c98fd177}

>>>
>>> Generation 1:
>>>

Module (0x00):
=====================================================================================================================================================================
   Gen  Name                                                  Mvid                                         EncId                                        EncBaseId  
=====================================================================================================================================================================
1: 1    '9bf51a04-1a01-4b05-b9f1-08915c4a9d07.exe' (#13b/15)  {d513abfc-5842-4d24-8223-1d11c98fd177} (#2)  {19f6809d-2a17-4a30-91b9-f45590969e0a} (#3)  nil        

TypeRef (0x01):
=====================================================================
   Scope                     Name                Namespace           
=====================================================================
1: 0x23000002 (AssemblyRef)  'Object' (#174/4e)  'System' (#16d/47)  
2: 0x23000002 (AssemblyRef)  'Int32' (#127/1)    'System' (#16d/47)  

Method (0x06, 0x1C):
==================================================================================================================================================================================================================
   Name          Signature                RVA         Parameters  GenericParameters  Attributes                                             ImplAttributes  ImportAttributes  ImportName  ImportModule     
==================================================================================================================================================================================================================
1: 'F' (#12d/7)  string (int32) (#6e/12)  0x00000004  nil         nil                0x00000091 (PrivateScope, Private, Static, HideBySig)  0               0                 nil         nil (ModuleRef)  

Param (0x08):
==================================================
   Name           Seq#  Attributes  Marshalling  
==================================================
1: 'x' (#17b/55)  1     0           nil          

MemberRef (0x0a):
==================================================================
   Parent                Name                  Signature          
==================================================================
1: 0x01000008 (TypeRef)  'ToString' (#164/3e)  string () (#61/5)  

StandAloneSig (0x11):
=====================
   Signature       
=====================
1: string (#5d/1)  

EnC Log (0x1e):
=========================================
   Entity                      Operation  
=========================================
1: 0x23000002 (AssemblyRef)    0          
2: 0x0a000006 (MemberRef)      0          
3: 0x01000007 (TypeRef)        0          
4: 0x01000008 (TypeRef)        0          
5: 0x11000002 (StandAloneSig)  0          
6: 0x06000002 (MethodDef)      0          
7: 0x08000001 (Param)          0          

EnC Map (0x1f):
=======================================================
   Entity                      Gen  Row       Edit    
=======================================================
1: 0x01000007 (TypeRef)        1    0x000001  add     
2: 0x01000008 (TypeRef)        1    0x000002  add     
3: 0x06000002 (MethodDef)      0    0x000002  update  
4: 0x08000001 (Param)          0    0x000001  update  
5: 0x0a000006 (MemberRef)      1    0x000001  add     
6: 0x11000002 (StandAloneSig)  1    0x000001  add     
7: 0x23000002 (AssemblyRef)    1    0x000001  add     

AssemblyRef (0x23):
=======================================================================================
   Name                    Version  Culture  PublicKeyOrToken                 Flags  
=======================================================================================
1: 'netstandard' (#12f/9)  2.0.0.0  nil      CC-7B-13-FF-CD-2D-DD-51 (#65/9)  0      

#US (size = 4):
  0: ''
  1: ''
  2: ''
  3: ''

#String (size = 87):
  0: ''
  1: 'Int32'
  7: 'F'
  9: 'netstandard'
  15: '9bf51a04-1a01-4b05-b9f1-08915c4a9d07.exe'
  3e: 'ToString'
  47: 'System'
  4e: 'Object'
  55: 'x'

#Blob (size = 24):
  0: 
  1 (MemberRefSignature): 07-01-0E
  5: 20-00-0E
  9: CC-7B-13-FF-CD-2D-DD-51
  12: 00-01-0E-08
  17: 

Sizes:
  MemberRefSignature: 3 bytes
#Guid (size = 48):
  1: {00000000-0000-0000-0000-000000000000}
  2: {d513abfc-5842-4d24-8223-1d11c98fd177}
  3: {19f6809d-2a17-4a30-91b9-f45590969e0a}

Author: davidwengier
Assignees: -
Labels:

area-Diagnostics-coreclr, untriaged

Milestone: -

@tommcdon tommcdon removed the untriaged New issue has not been triaged by the area owner label Jul 2, 2021
@tommcdon tommcdon added this to the 6.0.0 milestone Jul 2, 2021
@davidwengier
Copy link
Contributor Author

This is currently blocking dotnet/roslyn#52563

@mikem8361
Copy link
Member

Both David and I have confirmed that parameter renaming does work with the latest sdk's dotnet-watch. I'm closing this issue.

@ghost ghost locked as resolved and limited conversation to collaborators Aug 27, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

5 participants