示例#1
0
 static ResolveResult MapToNewContext(ResolveResult rr, MapTypeIntoNewContext mapping)
 {
     if (rr is TypeOfResolveResult)
     {
         return(new TypeOfResolveResult(
                    rr.Type.AcceptVisitor(mapping),
                    ((TypeOfResolveResult)rr).ReferencedType.AcceptVisitor(mapping)));
     }
     else if (rr is ArrayCreateResolveResult)
     {
         ArrayCreateResolveResult acrr = (ArrayCreateResolveResult)rr;
         return(new ArrayCreateResolveResult(
                    acrr.Type.AcceptVisitor(mapping),
                    MapToNewContext(acrr.SizeArguments, mapping),
                    MapToNewContext(acrr.InitializerElements, mapping)));
     }
     else if (rr.IsCompileTimeConstant)
     {
         return(new ConstantResolveResult(
                    rr.Type.AcceptVisitor(mapping),
                    rr.ConstantValue
                    ));
     }
     else
     {
         return(new ErrorResolveResult(rr.Type.AcceptVisitor(mapping)));
     }
 }
示例#2
0
 static ResolveResult[] MapToNewContext(ResolveResult[] input, MapTypeIntoNewContext mapping)
 {
     if (input == null)
     {
         return(null);
     }
     ResolveResult[] output = new ResolveResult[input.Length];
     for (int i = 0; i < input.Length; i++)
     {
         output[i] = MapToNewContext(input[i], mapping);
     }
     return(output);
 }
示例#3
0
		static ResolveResult MapToNewContext(ResolveResult rr, MapTypeIntoNewContext mapping)
		{
			if (rr is TypeOfResolveResult) {
				return new TypeOfResolveResult(
					rr.Type.AcceptVisitor(mapping),
					((TypeOfResolveResult)rr).ReferencedType.AcceptVisitor(mapping));
			} else if (rr is ArrayCreateResolveResult) {
				ArrayCreateResolveResult acrr = (ArrayCreateResolveResult)rr;
				return new ArrayCreateResolveResult(
					acrr.Type.AcceptVisitor(mapping),
					MapToNewContext(acrr.SizeArguments, mapping),
					MapToNewContext(acrr.InitializerElements, mapping));
			} else if (rr.IsCompileTimeConstant) {
				return new ConstantResolveResult(
					rr.Type.AcceptVisitor(mapping),
					rr.ConstantValue
				);
			} else {
				return new ErrorResolveResult(rr.Type.AcceptVisitor(mapping));
			}
		}
示例#4
0
		static ResolveResult[] MapToNewContext(ResolveResult[] input, MapTypeIntoNewContext mapping)
		{
			if (input == null)
				return null;
			ResolveResult[] output = new ResolveResult[input.Length];
			for (int i = 0; i < input.Length; i++) {
				output[i] = MapToNewContext(input[i], mapping);
			}
			return output;
		}