| 4439 | } |
| 4440 | |
| 4441 | private static Expr toHostExpr(QualifiedMethodExpr qmexpr, String source, int line, int column, Symbol tag, boolean tailPosition, IPersistentVector args) { |
| 4442 | if(qmexpr.hintedSig != null) { |
| 4443 | Executable method = QualifiedMethodExpr.resolveHintedMethod(qmexpr.c, qmexpr.methodName, qmexpr.kind, qmexpr.hintedSig); |
| 4444 | switch(qmexpr.kind) { |
| 4445 | case CTOR: |
| 4446 | return new NewExpr(qmexpr.c, (Constructor) method, args, line, column); |
| 4447 | case INSTANCE: |
| 4448 | return new InstanceMethodExpr(source, line, column, tag, (Expr) RT.first(args), |
| 4449 | qmexpr.c, munge(qmexpr.methodName), (java.lang.reflect.Method) method, |
| 4450 | PersistentVector.create(RT.next(args)), |
| 4451 | tailPosition); |
| 4452 | default: |
| 4453 | return new StaticMethodExpr(source, line, column, tag, qmexpr.c, |
| 4454 | munge(qmexpr.methodName), (java.lang.reflect.Method) method, args, tailPosition); |
| 4455 | } |
| 4456 | } |
| 4457 | else { |
| 4458 | switch(qmexpr.kind) { |
| 4459 | case CTOR: |
| 4460 | return new NewExpr(qmexpr.c, args, line, column); |
| 4461 | case INSTANCE: |
| 4462 | return new InstanceMethodExpr(source, line, column, tag, (Expr) RT.first(args), qmexpr.c, |
| 4463 | munge(qmexpr.methodName), PersistentVector.create(RT.next(args)), tailPosition); |
| 4464 | default: |
| 4465 | return new StaticMethodExpr(source, line, column, tag, qmexpr.c, |
| 4466 | munge(qmexpr.methodName), args, tailPosition); |
| 4467 | } |
| 4468 | } |
| 4469 | } |
| 4470 | } |
| 4471 | |
| 4472 | static class SourceDebugExtensionAttribute extends Attribute{ |