MCPcopy Index your code
hub / github.com/clojure/clojure / toHostExpr

Method toHostExpr

src/jvm/clojure/lang/Compiler.java:4441–4469  ·  view source on GitHub ↗
(QualifiedMethodExpr qmexpr, String source, int line, int column, Symbol tag, boolean tailPosition, IPersistentVector args)

Source from the content-addressed store, hash-verified

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
4472static class SourceDebugExtensionAttribute extends Attribute{

Callers 1

parseMethod · 0.95

Calls 5

resolveHintedMethodMethod · 0.95
firstMethod · 0.95
createMethod · 0.95
nextMethod · 0.95
mungeMethod · 0.80

Tested by

no test coverage detected