X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fmcs%2Flinq.cs;h=3697ef0fe0010bc8775517f7bf386dbf2f63ac03;hb=83379852c15a940f16a2e2d34912c98f05b652dc;hp=a983df9acd6bf7a8274bc11f50a9e1254bfadb4a;hpb=81b4a277b2b752b8b76c2613b83b07d6da13a0a2;p=mono.git diff --git a/mcs/mcs/linq.cs b/mcs/mcs/linq.cs index a983df9acd6..3697ef0fe00 100644 --- a/mcs/mcs/linq.cs +++ b/mcs/mcs/linq.cs @@ -33,7 +33,7 @@ namespace Mono.CSharp.Linq return next.BuildQueryClause (ec, lSide); } - public override Expression DoResolve (ResolveContext ec) + protected override Expression DoResolve (ResolveContext ec) { int counter = QueryBlock.TransparentParameter.Counter; @@ -166,9 +166,9 @@ namespace Mono.CSharp.Linq t.next = (AQueryClause) next.Clone (clonectx); } - public override Expression DoResolve (ResolveContext ec) + protected override Expression DoResolve (ResolveContext ec) { - return expr.DoResolve (ec); + return expr.Resolve (ec); } public virtual Expression BuildQueryClause (ResolveContext ec, Expression lSide) @@ -234,7 +234,7 @@ namespace Mono.CSharp.Linq { sealed class RangeAnonymousTypeParameter : AnonymousTypeParameter { - public RangeAnonymousTypeParameter (Expression initializer, LocatedToken parameter) + public RangeAnonymousTypeParameter (Expression initializer, SimpleMemberName parameter) : base (initializer, parameter.Value, parameter.Location) { } @@ -251,7 +251,7 @@ namespace Mono.CSharp.Linq { } - protected static Expression CreateRangeVariableType (ToplevelBlock block, IMemberContext context, LocatedToken name, Expression init) + protected static Expression CreateRangeVariableType (ToplevelBlock block, IMemberContext context, SimpleMemberName name, Expression init) { ArrayList args = new ArrayList (2); args.Add (new AnonymousTypeParameter (block.Parameters [0])); @@ -283,7 +283,7 @@ namespace Mono.CSharp.Linq return next.BuildQueryClause (ec, expr); } - public override Expression DoResolve (ResolveContext ec) + protected override Expression DoResolve (ResolveContext ec) { Expression e = BuildQueryClause (ec, null); return e.Resolve (ec); @@ -366,10 +366,10 @@ namespace Mono.CSharp.Linq class Join : ARangeVariableQueryClause { - readonly LocatedToken lt; + readonly SimpleMemberName lt; ToplevelBlock inner_selector, outer_selector; - public Join (ToplevelBlock block, LocatedToken lt, Expression inner, ToplevelBlock outerSelector, ToplevelBlock innerSelector, Location loc) + public Join (ToplevelBlock block, SimpleMemberName lt, Expression inner, ToplevelBlock outerSelector, ToplevelBlock innerSelector, Location loc) : base (block, inner) { this.lt = lt; @@ -392,7 +392,7 @@ namespace Mono.CSharp.Linq args.Add (new Argument (lambda)); Expression result_selector_expr; - LocatedToken into_variable = GetIntoVariable (); + SimpleMemberName into_variable = GetIntoVariable (); // // When select follows use is as result selector // @@ -411,7 +411,7 @@ namespace Mono.CSharp.Linq args.Add (new Argument (result_selector)); } - protected virtual LocatedToken GetIntoVariable () + protected virtual SimpleMemberName GetIntoVariable () { return lt; } @@ -431,16 +431,16 @@ namespace Mono.CSharp.Linq class GroupJoin : Join { - readonly LocatedToken into; + readonly SimpleMemberName into; - public GroupJoin (ToplevelBlock block, LocatedToken lt, Expression inner, - ToplevelBlock outerSelector, ToplevelBlock innerSelector, LocatedToken into, Location loc) + public GroupJoin (ToplevelBlock block, SimpleMemberName lt, Expression inner, + ToplevelBlock outerSelector, ToplevelBlock innerSelector, SimpleMemberName into, Location loc) : base (block, lt, inner, outerSelector, innerSelector, loc) { this.into = into; } - protected override LocatedToken GetIntoVariable () + protected override SimpleMemberName GetIntoVariable () { return into; } @@ -452,7 +452,7 @@ namespace Mono.CSharp.Linq class Let : ARangeVariableQueryClause { - public Let (ToplevelBlock block, TypeContainer container, LocatedToken identifier, Expression expr) + public Let (ToplevelBlock block, TypeContainer container, SimpleMemberName identifier, Expression expr) : base (block, CreateRangeVariableType (block, container, identifier, expr)) { } @@ -490,9 +490,9 @@ namespace Mono.CSharp.Linq class SelectMany : ARangeVariableQueryClause { - LocatedToken lt; + SimpleMemberName lt; - public SelectMany (ToplevelBlock block, LocatedToken lt, Expression expr) + public SelectMany (ToplevelBlock block, SimpleMemberName lt, Expression expr) : base (block, expr) { this.lt = lt; @@ -602,7 +602,7 @@ namespace Mono.CSharp.Linq public readonly ParametersCompiled Parent; public readonly string Identifier; - public TransparentParameter (ParametersCompiled parent, LocatedToken identifier) + public TransparentParameter (ParametersCompiled parent, SimpleMemberName identifier) : base (ParameterNamePrefix + Counter++, identifier.Location) { Parent = parent; @@ -623,15 +623,15 @@ namespace Mono.CSharp.Linq } } - public QueryBlock (CompilerContext ctx, Block parent, LocatedToken lt, Location start) - : base (ctx, parent, new ParametersCompiled (new ImplicitQueryParameter (lt.Value, lt.Location)), start) + public QueryBlock (CompilerContext ctx, Block parent, SimpleMemberName lt, Location start) + : base (ctx, parent, new ParametersCompiled (ctx, new ImplicitQueryParameter (lt.Value, lt.Location)), start) { if (parent != null) base.CheckParentConflictName (parent.Toplevel, lt.Value, lt.Location); } - public QueryBlock (CompilerContext ctx, Block parent, ParametersCompiled parameters, LocatedToken lt, Location start) - : base (ctx, parent, new ParametersCompiled (parameters [0].Clone (), new ImplicitQueryParameter (lt.Value, lt.Location)), start) + public QueryBlock (CompilerContext ctx, Block parent, ParametersCompiled parameters, SimpleMemberName lt, Location start) + : base (ctx, parent, new ParametersCompiled (ctx, parameters [0].Clone (), new ImplicitQueryParameter (lt.Value, lt.Location)), start) { } @@ -640,11 +640,11 @@ namespace Mono.CSharp.Linq { } - public void AddTransparentParameter (LocatedToken name) + public void AddTransparentParameter (CompilerContext ctx, SimpleMemberName name) { base.CheckParentConflictName (this, name.Value, name.Location); - parameters = new ParametersCompiled (new TransparentParameter (parameters, name)); + parameters = new ParametersCompiled (ctx, new TransparentParameter (parameters, name)); } protected override bool CheckParentConflictName (ToplevelBlock block, string name, Location l)