在阅读并讨论Java 10s新保留类型名称var
(JEP 286:局部变量类型推断)之后,讨论中出现了一个问题.
与文字一起使用时,如:
var number = 42;
Run Code Online (Sandbox Code Playgroud)
是number现在的int还是一个Integer?如果您只是将它与比较运算符一起使用或作为参数使用它通常无关紧要,这要归功于自动装箱和开箱.但由于Integer成员职能,它可能很重要.
那么哪个类型是由原var语int或类创建的Integer?
我为llvm写了一些自己的传递,以便与clang一起使用它们.
我将它们集成在llvm中(不是动态加载的).当我输入时,它们甚至列在Optimizations available:部分中:
opt --help-hidden
Run Code Online (Sandbox Code Playgroud)
当我打电话给clang时,我想现在自动运行我自己的一个通行证作为最后一个通行证:
clang ./hello.bc -o ./hello
Run Code Online (Sandbox Code Playgroud)
甚至用c代码:
clang ./hello.c -o ./hello
Run Code Online (Sandbox Code Playgroud)
当我手动使用opt运行传递时,会生成修改后的ByteCode并将其写入新的.bc文件:
opt -my-pass < ./hello.bc > ./hello_optimized.bc
Run Code Online (Sandbox Code Playgroud)
当我用clang编译修改后的.bc时,会再次运行普通的clang优化,这会破坏我手动执行的传递的优化:
clang -O0 -m32 ./hello_optimized.bc -o ./hello_optimized
Run Code Online (Sandbox Code Playgroud)
我的问题是:
将Android SDK与gradle构建系统一起使用时,可以将android.aar文件作为子项目包含在内.在aar中,可以提供实现自定义lint检查的lint.jar(Source).
在gradlew build命令行上的项目根目录中执行时,我library.aar会爆炸,lint.jar内部用于lint检查.即使我更新了lint.jar内部library.aar,它也会在lint缓存中更新,并且lint.jar当我gradlew build再次调用时,new 用于检查.
如果我使用Android Studio 1.5中的相同gradle命令构建相同的项目,library.aar则仅在模块导入或IDE启动时展开一次.
lint.jar当我更新library.aar我的子项目并且lint.jarIDE启动中的旧版本仍在使用时,它永远不会更新.
这是一个错误还是我做错了什么?
目前我通过在命令行上执行gradle命令来解决这个问题,但如果Android Studio在这些情况下也可以工作,那将会很好.