Fix #65833, test-300.cs, cs0122-5.cs, cs0122-6.cs.
authorRaja R Harinath <harinath@hurrynot.org>
Fri, 1 Oct 2004 05:16:01 +0000 (05:16 -0000)
committerRaja R Harinath <harinath@hurrynot.org>
Fri, 1 Oct 2004 05:16:01 +0000 (05:16 -0000)
commit1ab7bd7dbd33c799adafb400f4070038c7b81b02
tree70b239760b710e2139699813fecca95c678a1324
parente998d57e29d1db614db1e82591b0259126bd05be
Fix #65833, test-300.cs, cs0122-5.cs, cs0122-6.cs.
* class.c (TypeContainer.DefineType): Flag error if
base types aren't accessible due to access permissions.
* decl.cs (DeclSpace.ResolveType): Move logic to
Expression.ResolveAsTypeTerminal.
(DeclSpace.ResolveTypeExpr): Thin layer over
Expression.ResolveAsTypeTerminal.
(DeclSpace.CheckAccessLevel, DeclSpace.FamilyAccess):
Refactor code into NestedAccess.  Use it.
(DeclSpace.NestedAccess): New.
* ecore.cs (Expression.ResolveAsTypeTerminal): Add new
argument to silence errors.  Check access permissions.
(TypeExpr.DoResolve, TypeExpr.ResolveType): Update.
* expression.cs (ProbeExpr.DoResolve): Use ResolveAsTypeTerminal.
(Cast.DoResolve): Likewise.
(New.DoResolve): Likewise.
(InvocationOrCast.DoResolve,ResolveStatement): Likewise.
(TypeOf.DoResolve): Likewise.

* expression.cs (Invocation.BetterConversion): Return the Type of
the better conversion.  Implement section 14.4.2.3 more faithfully.
(Invocation.BetterFunction): Make boolean.  Make correspondence to
section 14.4.2.2 explicit.
(Invocation.OverloadResolve): Update.
(Invocation): Remove is_base field.
(Invocation.DoResolve): Don't use is_base.  Use mg.IsBase.
(Invocation.Emit): Likewise.

svn path=/trunk/mcs/; revision=34585
mcs/mcs/ChangeLog
mcs/mcs/class.cs
mcs/mcs/decl.cs
mcs/mcs/ecore.cs
mcs/mcs/expression.cs