[svn] r6797: vs-plugin/trunk/Nemerle.Compiler.Utils:
Nemerle.Completion2/CodeModel/Project.Type.n Nemerle....
VladD2
svnadmin at nemerle.org
Thu Oct 26 17:22:34 CEST 2006
Log:
Fix delegates compile and hints display.
Author: VladD2
Date: Thu Oct 26 17:22:33 2006
New Revision: 6797
Modified:
vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/CodeModel/Project.Type.n
vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/CodeModel/Project.n
vs-plugin/trunk/Nemerle.Compiler.Utils/Utils.n
Modified: vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/CodeModel/Project.Type.n
==============================================================================
--- vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/CodeModel/Project.Type.n (original)
+++ vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/CodeModel/Project.Type.n Thu Oct 26 17:22:33 2006
@@ -81,7 +81,9 @@
: Location * object
{
def typeBuilder = typeDecl.Builder;
- def member = typeBuilder.GetActiveMember(fileIndex, line, col, (f) => f is PropertyBuilder);
+ def member =
+ if (typeBuilder.IsDelegate) typeBuilder : IMember
+ else typeBuilder.GetActiveMember(fileIndex, line, col, (f) => f is PropertyBuilder);
match (member)
{
@@ -142,6 +144,7 @@
| fb is FieldBuilder => (fb.Location, fb)
| pb is PropertyBuilder => (pb.Location, pb)
+ | tb is TypeBuilder => (tb.Location, tb)
| null => (Location.Default, null)
| _ =>
Trace.Assert(false, $"Unknown member type '$member'.");
@@ -169,6 +172,7 @@
| fh is Typedtree.Fun_header => (QuickTipInfo(loc, fh))
| fb is FieldBuilder => (QuickTipInfo(fb.Location, fb))
| pb is PropertyBuilder => (QuickTipInfo(pb.Location, pb))
+ | tb is TypeBuilder => (QuickTipInfo(tb.Location, tb))
| _ => (null)
}
}
@@ -193,6 +197,7 @@
| fh is Typedtree.Fun_header => (GotoInfo(fh))
| fb is FieldBuilder => (GotoInfo(fb))
| pb is PropertyBuilder => (GotoInfo(pb))
+ | tb is TypeBuilder => (GotoInfo(tb))
| _ => (null)
}
}
Modified: vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/CodeModel/Project.n
==============================================================================
--- vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/CodeModel/Project.n (original)
+++ vs-plugin/trunk/Nemerle.Compiler.Utils/Nemerle.Completion2/CodeModel/Project.n Thu Oct 26 17:22:33 2006
@@ -225,13 +225,21 @@
//
def _start = Environment.TickCount;
- foreach (member in builder.GetDirectMembers())
+ def isProessed(m)
+ {
+ !(m.Attributes %&& NemerleAttributes.SpecialName)
+ && m.Location.FileIndex == fileIndex
+ }
+
+ def members = builder.GetDirectMembers().Filter(isProessed);
+
+ foreach (member in members)
{
// TypeBuilder can contains methods from many parts of partial
// class and super classes. We must process only memebers defined
// in processed file only!
//
- | method is MethodBuilder when method.Location.FileIndex == fileIndex =>
+ | method is MethodBuilder =>
#if !DEBUG
when (_start > Environment.TickCount - 2000)
@@ -271,7 +279,7 @@
//
addRegion(method.Location.TrimStart(method.fun_header.Location, false));
- | builder is TypeBuilder when builder.Location.FileIndex == fileIndex =>
+ | builder is TypeBuilder =>
processBuilder(builder)
Modified: vs-plugin/trunk/Nemerle.Compiler.Utils/Utils.n
==============================================================================
--- vs-plugin/trunk/Nemerle.Compiler.Utils/Utils.n (original)
+++ vs-plugin/trunk/Nemerle.Compiler.Utils/Utils.n Thu Oct 26 17:22:33 2006
@@ -189,7 +189,12 @@
| _ =>
//when (typeBuilder.Name == "SourceCollection") //member.Name == ".ctor"
// Trace.Assert(false);
- if (member.Location.Contains(fileIndex, line, col)) member else loop(tail)
+ if (member.Location.Contains(fileIndex, line, col)
+ && !(member.Attributes %&& NemerleAttributes.SpecialName)
+ )
+ member
+ else
+ loop(tail)
}
| [] => null
More information about the svn
mailing list