You've already forked linux-packaging-mono
Imported Upstream version 5.10.0.71
Former-commit-id: 65f7f4344e4c1c5e42628faefa5b9d36955387d1
This commit is contained in:
parent
e2950ec768
commit
b7cd5de421
@@ -1 +1 @@
|
||||
b27caaa0982fd67a1d7894558a1ad7e1bc5164da
|
||||
4d6fcb44c0d9390b15f0449683dd69fb56c10390
|
||||
@@ -338,6 +338,8 @@ namespace Mono.CSharp {
|
||||
Module.PredefinedAttributes.Dynamic.EmitAttribute (CreateReturnBuilder ().Builder);
|
||||
} else if (rtype.HasDynamicElement) {
|
||||
Module.PredefinedAttributes.Dynamic.EmitAttribute (CreateReturnBuilder ().Builder, rtype, Location);
|
||||
} else if (rtype is ReadOnlyReferenceContainer) {
|
||||
Module.PredefinedAttributes.IsReadOnly.EmitAttribute (CreateReturnBuilder ().Builder);
|
||||
}
|
||||
|
||||
if (rtype.HasNamedTupleElement) {
|
||||
|
||||
@@ -1 +1 @@
|
||||
cf27d94416e563d7cd096b31566b356ef3f05640
|
||||
51f268737c01310008f6ef3be4705ffc0373b7ed
|
||||
@@ -720,6 +720,8 @@ namespace Mono.CSharp {
|
||||
Module.PredefinedAttributes.Dynamic.EmitAttribute (CreateReturnBuilder ().Builder);
|
||||
} else if (ReturnType.HasDynamicElement) {
|
||||
Module.PredefinedAttributes.Dynamic.EmitAttribute (CreateReturnBuilder ().Builder, ReturnType, Location);
|
||||
} else if (ReturnType is ReadOnlyReferenceContainer) {
|
||||
Module.PredefinedAttributes.IsReadOnly.EmitAttribute (CreateReturnBuilder ().Builder);
|
||||
}
|
||||
|
||||
if (ReturnType.HasNamedTupleElement) {
|
||||
@@ -2466,6 +2468,8 @@ namespace Mono.CSharp {
|
||||
Module.PredefinedAttributes.Dynamic.EmitAttribute (CreateReturnBuilder ().Builder);
|
||||
} else if (ReturnType.HasDynamicElement) {
|
||||
Module.PredefinedAttributes.Dynamic.EmitAttribute (CreateReturnBuilder ().Builder, ReturnType, Location);
|
||||
} else if (ReturnType is ReadOnlyReferenceContainer) {
|
||||
Module.PredefinedAttributes.IsReadOnly.EmitAttribute (CreateReturnBuilder ().Builder);
|
||||
}
|
||||
|
||||
if (ReturnType.HasNamedTupleElement) {
|
||||
|
||||
@@ -265,6 +265,7 @@ namespace Mono.CSharp
|
||||
readonly Dictionary<ArrayContainer.TypeRankPair, ArrayContainer> array_types;
|
||||
readonly Dictionary<TypeSpec, PointerContainer> pointer_types;
|
||||
readonly Dictionary<TypeSpec, ReferenceContainer> reference_types;
|
||||
readonly Dictionary<TypeSpec, ReadOnlyReferenceContainer> readonly_reference_types;
|
||||
readonly Dictionary<TypeSpec, MethodSpec> attrs_cache;
|
||||
readonly Dictionary<TypeSpec, AwaiterDefinition> awaiters;
|
||||
readonly Dictionary<TypeSpec, TypeInfo> type_info_cache;
|
||||
@@ -301,6 +302,7 @@ namespace Mono.CSharp
|
||||
array_types = new Dictionary<ArrayContainer.TypeRankPair, ArrayContainer> ();
|
||||
pointer_types = new Dictionary<TypeSpec, PointerContainer> ();
|
||||
reference_types = new Dictionary<TypeSpec, ReferenceContainer> ();
|
||||
readonly_reference_types = new Dictionary<TypeSpec, ReadOnlyReferenceContainer> ();
|
||||
attrs_cache = new Dictionary<TypeSpec, MethodSpec> ();
|
||||
awaiters = new Dictionary<TypeSpec, AwaiterDefinition> ();
|
||||
type_info_cache = new Dictionary<TypeSpec, TypeInfo> ();
|
||||
@@ -427,6 +429,12 @@ namespace Mono.CSharp
|
||||
}
|
||||
}
|
||||
|
||||
internal Dictionary<TypeSpec, ReadOnlyReferenceContainer> ReadonlyReferenceTypesCache {
|
||||
get {
|
||||
return readonly_reference_types;
|
||||
}
|
||||
}
|
||||
|
||||
internal Dictionary<TypeSpec, TypeInfo> TypeInfoCache {
|
||||
get {
|
||||
return type_info_cache;
|
||||
|
||||
@@ -1 +1 @@
|
||||
78cc7661ddc8331cbf6788617ee8e450077108dc
|
||||
6f86db260bf6516fe48fce41e5197b299a5cfc88
|
||||
@@ -2023,7 +2023,7 @@ namespace Mono.CSharp
|
||||
[System.Diagnostics.DebuggerDisplay("{DisplayDebugInfo()}")]
|
||||
class ReferenceContainer : ElementTypeSpec
|
||||
{
|
||||
ReferenceContainer (TypeSpec element)
|
||||
protected ReferenceContainer (TypeSpec element)
|
||||
: base (MemberKind.ByRef, element, null)
|
||||
{
|
||||
cache = null;
|
||||
@@ -2074,6 +2074,34 @@ namespace Mono.CSharp
|
||||
}
|
||||
}
|
||||
|
||||
[System.Diagnostics.DebuggerDisplay ("{DisplayDebugInfo()}")]
|
||||
class ReadOnlyReferenceContainer : ReferenceContainer
|
||||
{
|
||||
public ReadOnlyReferenceContainer (TypeSpec element)
|
||||
: base (element)
|
||||
{
|
||||
}
|
||||
|
||||
string DisplayDebugInfo ()
|
||||
{
|
||||
return "ref readonly " + GetSignatureForError ();
|
||||
}
|
||||
|
||||
public new static ReferenceContainer MakeType (ModuleContainer module, TypeSpec element)
|
||||
{
|
||||
if (element.Kind == MemberKind.ByRef)
|
||||
throw new ArgumentException ();
|
||||
|
||||
ReadOnlyReferenceContainer pc;
|
||||
if (!module.ReadonlyReferenceTypesCache.TryGetValue (element, out pc)) {
|
||||
pc = new ReadOnlyReferenceContainer (element);
|
||||
module.ReadonlyReferenceTypesCache.Add (element, pc);
|
||||
}
|
||||
|
||||
return pc;
|
||||
}
|
||||
}
|
||||
|
||||
class PointerContainer : ElementTypeSpec
|
||||
{
|
||||
private PointerContainer (TypeSpec element)
|
||||
|
||||
Reference in New Issue
Block a user