From 7151d0fdc960e439aa71ad3e4c69e00153c0f377 Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Sun, 19 Jan 2014 12:32:21 +0100 Subject: Adapt fun prototype when looking for second chance implicits (aka BigInt) If we look for aprototype of the form select(name, FunProto(args, ...)) it's important that the result type of the FunProto type is a wildcard type, because implicit views are disabled for that match. --- this commit achieves the first bootstrap of dotty! --- --- src/dotty/tools/dotc/typer/Applications.scala | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/dotty/tools/dotc/typer/Applications.scala') diff --git a/src/dotty/tools/dotc/typer/Applications.scala b/src/dotty/tools/dotc/typer/Applications.scala index 400c43e3c..1ee34e4be 100644 --- a/src/dotty/tools/dotc/typer/Applications.scala +++ b/src/dotty/tools/dotc/typer/Applications.scala @@ -448,7 +448,9 @@ trait Applications extends Compatibility { self: Typer => // try with prototype `[].name(args)`, this might succeed by inserting an // implicit conversion around []. (an example is Int + BigInt). tryEither { implicit ctx => - val qual1 = adaptInterpolated(qual, new SelectionProto(name, proto, NoViewsAllowed)) + val simpleFunProto = new FunProto(tree.args, WildcardType, this) // drop result type, because views are disabled + val selProto = new SelectionProto(name, simpleFunProto, NoViewsAllowed) + val qual1 = adaptInterpolated(qual, selProto) if (qual eq qual1) ctx.error("no progress") if (ctx.reporter.hasErrors) qual1 else -- cgit v1.2.3