[svn] r6268: nemerle/trunk/ncc/external: InternalTypes.n
LibrariesLoader.n
nazgul
svnadmin at nemerle.org
Sun May 14 13:10:54 CEST 2006
Log:
Support extension attribute also from System.Query
Author: nazgul
Date: Sun May 14 13:10:48 2006
New Revision: 6268
Modified:
nemerle/trunk/ncc/external/InternalTypes.n
nemerle/trunk/ncc/external/LibrariesLoader.n
Modified: nemerle/trunk/ncc/external/InternalTypes.n
==============================================================================
--- nemerle/trunk/ncc/external/InternalTypes.n (original)
+++ nemerle/trunk/ncc/external/InternalTypes.n Sun May 14 13:10:48 2006
@@ -72,6 +72,7 @@
// set in LibrariesLoader upon first possiblity
public mutable ExtensionAttribute : System.Type;
+ public mutable SQ_ExtensionAttribute : System.Type;
public mutable Decimal_ctors : Hashtable [string, SR.ConstructorInfo];
public mutable Type_GetTypeFromHandle : SR.MethodInfo;
Modified: nemerle/trunk/ncc/external/LibrariesLoader.n
==============================================================================
--- nemerle/trunk/ncc/external/LibrariesLoader.n (original)
+++ nemerle/trunk/ncc/external/LibrariesLoader.n Sun May 14 13:10:48 2006
@@ -361,6 +361,11 @@
when (t != null)
SystemType.ExtensionAttribute = t;
}
+ when (SystemType.SQ_ExtensionAttribute == null) {
+ def t = assembly.GetType ("System.CompilerServices.ExtensionAttribute");
+ when (t != null)
+ SystemType.ExtensionAttribute = t;
+ }
mutable i = 0;
for (; i < types.Length; ++i) {
@@ -374,7 +379,9 @@
def mainnode = ns_node.Path (path_to_type);
when (SystemType.ExtensionAttribute != null &&
- t.IsDefined (SystemType.ExtensionAttribute, false))
+ t.IsDefined (SystemType.ExtensionAttribute, false) ||
+ SystemType.SQ_ExtensionAttribute != null &&
+ t.IsDefined (SystemType.SQ_ExtensionAttribute, false))
_construct_right_away ::= mainnode;
mutable tinfo_cache = null;
@@ -718,7 +725,8 @@
when (LibraryReference.add_buildins) AddBuiltins ();
// else Message.Debug ($"omiititng $FullName");
- decode_extension_methods ();
+ decode_extension_methods (SystemType.ExtensionAttribute);
+ decode_extension_methods (SystemType.SQ_ExtensionAttribute);
}
#region Special numeric overloads
@@ -1331,10 +1339,9 @@
}
}
- decode_extension_methods () : void
+ decode_extension_methods (t : System.Type) : void
{
- when (SystemType.ExtensionAttribute != null) {
- def t = SystemType.ExtensionAttribute;
+ when (t != null) {
when (system_type.IsDefined (t, false)) {
foreach (m is IMethod in GetMembers ())
when (m.IsStatic && m.GetHandle ().IsDefined (t, false))
More information about the svn
mailing list