📄 changelog
字号:
2007-01-17 Per Bothner <per@bothner.com> * TypeSwitch.java (compile): Handle default case similarly as other cases - specifically with variable. Minor optimization in case variable is unused.2007-01-02 Per Bothner <per@bothner.com> * ClassMethods.java (getMethods, apply): Generalize from ClassType to ObjectType. * Invoke.java (apply, applyN, lookupMethods, selectApplicable): Likewise.2006-12-29 Per Bothner <per@bothner.com> * Invoke.java (inline): Fix off-by-one error.2006-12-23 Per Bothner <per@bothner.com> * Invoke.java (applyN, inline): Look for "valueOf" method if there is no suitable constructor. * Invoke.java (getMethods): Split non-reentrant method into two ... (getMethods, selectApplicable): ... new re-entrant methods. (cacheMethods, cacheArgs, cacheDefinitelyApplicableMethodCount, cachePossiblyApplicableMethodCount): Remove static fields.2006-12-06 Per Bothner <per@bothner.com> * OccurrenceType.java: ElementPredicate was renamed to ItemPredicate.2006-11-16 Per Bothner <per@bothner.com> * SingletonType.java (compare, coerceToSingleton, coerceFromObject, emitCoerceFromObject): New methods. * OccurrenceType.java (emptySequenceType): Use SingletonType for base.2006-11-07 Per Bothner <per@bothner.com> * OccurrenceType.java (itemCountRange, itemCountIsOne): Fix thinko replacing 1001 by 0x1001. Compare base if it is ObjectType, not only ClassType.2006-11-01 Per Bothner <per@bothner.com> * SingletonType.java: New class, extends ObjectType. * Makefile.am: Update accordingly. * OccurrenceType.java (getInstance): Add a special case. (compare): Add slightly more intelligence. (itemCountIsOne): New static method, expanded on and replacing SeriesTarget.isSingletonType. (itemCountRange, itemCountCode, itemCountIsZeroOrOne, itemPrimeType): New static methods.2006-10-29 Per Bothner <per@bothner.com> * TypeSwitch.java (apply): Fix so it actually works.2006-10-25 Per Bothner <per@bothner.com> * OccurrenceType.java (emptySequenceType): New static final.2006-09-28 Per Bothner <per@bothner.com> * OccurrenceType.java (getBase, minOccurs, maxOccurs): New accessors. (coerceFromObject): Handle singleton, if apprpriate.2006-09-11 Per Bothner <per@bothner.com> * FieldLocation.java: Remove unused local variable. * Invoke.java: Likewise. * StaticFieldLocation.java: Remove unused import.2006-08-08 Per Bothner <per@bothner.com> * FieldLocation.java (make): New factory method for immediate mode. * StaticFieldLocation.java (make): Likewise.2006-07-12 Per Bothner <per@bothner.com> * SlotGet.java (inline): If class unknown, return. * Invoke.java (checkKnownClass): Fix javadoc comment.2006-06-27 Per Bothner <per@bothner.com> * OccurrenceType.java (getConstructor): New method. * Invoke.java (typeFrom): Allow any ObjectType. (applyN): If dtype is a TypeValue, check for non-null getConstructor. (inline): Likewise. Merge in private method into public method.2006-06-16 Per Bothner <per@bothner.com> * Invoke.java (typeFrom): Handle ClassNamespace.2006-06-12 Per Bothner <per@bothner.com> * Invoke.java (checkKnownClass): New method. (inlineClassName): Use it. * SlotGet.java (inline): Likewise.2006-05-30 Per Bothner <per@bothner.com> * SlotGet.java (inline): Fix bug in handling of "class" pseudo-field.2006-05-09 Per Bothner <per@bothner.com> * SlotGet.java (lookupMember): If null caller - as when evaluating - the use Object instead to check for accessibility. * SlotSet.java (lookupMember): Likewise.2006-04-23 Per Bothner <per@bothner.com> * InstanceOf.java (inline): Fold if constant.2006-03-27 Per Bothner <per@bothner.com> * SlotGet.java (getSlotValue, inline): Pass unmangled rather than mangled name to ClassExp.slotToMethodName. * SlotSet.java (apply): Likewise. (inline): Don't call ClassMethods.checkName, which mangles. * SlotSet.java (inline): Combine Field/Method handling using Member. * SlotGet.java: If the slot name is literal but we don't know the object type, then pre-mangle the field name at compile time. Based on an idea and prototype by Dean Ferreyra <dferreyra@igc.org>. (getSlotValue): New static function. (apply2): Call getSlotValue. (inline): Rewrite to do field lookup now rather than at compile time. (getReturnType): Can therefore be simplified. (inline): If field unknown but field name literal, replace by invocation of getSlotValue.2006-03-25 Per Bothner <per@bothner.com> * SlotGet.java (slotRef): New field.2006-03-24 Per Bothner <per@bothner.com> * SlotGet.java (makeGetField): Change return type.2006-03-17 Per Bothner <per@bothner.com> * OccurrenceType.java (getInstance): New factory method.2006-03-15 Per Bothner <per@bothner.com> * InstanceOf.java (language): Make protected, for use by new CastableAs. * Invoke.java (inlineClassName): Don't lower a PairClassType to its implementationType - that's only correct for 'make' - which does not use this method.2006-03-13 Per Bothner <per@bothner.com> * OccurrenceType.java (compare): Instead of a throw return -2. * SlotGet.java (apply): Fix WrongType exception value thrown.2006-03-03 Per Bothner <per@bothner.com> * Invoke.java (inlineClassName): Make return type more specific.2006-02-19 Per Bothner <per@bothner.com> * ClassMethods.java (getMethods): Combine two methods into one, and simplify parameter list to take a 'mode'. Pass mode to PrimProcedure constructor. (apply - both variants): Simplify parameter list. * Invoke.java (invoke): New can also match static methods. (apply(Objct[],CallContext)): Merge into caller. Handle more kinds. (applyN(Invoke,Object[])): Merge into caller. Likewise handle more. (lookupMethods): New method. (apply, applyN): Use it. (getMethods): Handle more kinds. * SlotGet.java (getField): Return Member, and rename to lookupMember. (compile, getReturnType): Update accordingly. * SlotSet.java (lookupFieldOrMethod): Rename to lookupMember, and change return type to Member. (compile): Update accordingly. Can now simplify a bit. * Invoke.java (checkKeywords): Update appropriately.2006-02-09 Per Bothner <per@bothner.com> * Invoke.java (inline): Don't inline, unless mustCompile. * SlotGet.java (inline): Likewise. * SlotSet.java (inline): Likewise. * ArrayGet.java (apply2): Added missing coercion.2006-02-07 Per Bothner <per@bothner.com> * ClassMethodProc.java: Remove no-longer needed file. * Makefile: Update accordingly. * ClassMethods.java (apply): Extra Language parameter. * Invoke.java: Update callers.2006-02-06 Per Bothner <per@bothner.com> * ClassMethodProc.java: Remove a bunch of no-longer needed crub. The entire file will be removed soon.2006-02-01 Per Bothner <per@bothner.com> * ArrayGet.java (compile): Use ArrayType.make rather than creating a new ArrayType - which may not compare correctly. * ArrayLength.java (compile): Likewise. * ArrayNew.java (compile, getReturnType): Likewise. * ArraySet.java (compile): Likewise.2006-01-24 Per Bothner <per@bothner.com> * SlotSet.java (getField): Look for method using getMethod rather than getDeclaredMethod, so we can check inherited methods. Fixes bug introduced 2006-01-11.2006-01-20 Per Bothner <per@bothner.com> * Invoke.java: Extend 'make' procedure for primitive-array allocation. (typeFrom): Allow to return an ArrayType if this is 'make'. (apply, applyN): Update call-sites accordingly. (applyN, inline): Handle allocation of arrays. * Invoke.java (typeFrom): Fix arguments to WrongType constructor. We used to get a NullPointerException is WrappedException.<init>.2006-01-11 Per Bothner <per@bothner.com> * SlotSet.java (apply2): Use WrappedException.wrapIfNeeded. * SlotSet.java (getField): Simplify seraching for a setter method. Specifically, look for any 1-argument method.2006-01-05 Per Bothner <per@bothner.com> * SlotGet.java: Use new Compilation.loadClasRef variant.2006-01-04 Per Bothner <per@bothner.com> * SlotGet.java (getField, compile): Pass the declaring-class of the field or method to isAccessible, not the possibly-derived class. * SlotSet.java (getField, compile): Likewise.2005-12-05 Per Bothner <per@bothner.com> * SlotGet.java (compile): Don't return compile-time-class for "class", unless isStatic. Fixes Savannah bug #15151.2005-12-03 Per Bothner <per@bothner.com> * ClassMethodProc.java (CLASSTYPE_FOR): New constant. (makeExp): New method overloading.2005-11-28 Per Bothner <per@bothner.com> * SlotSet.java (compileSet): Coerce argument to language-specific type, using new getLangTypeFor method. Use CheckedTarget. * SlotSet.java (compile): Fix name - for error message.2005-11-25 Per Bothner <per@bothner.com> * Invoke.java (checkKeywords): Take caller parameter. * SlotGet.java (getField): Use new caller parameter so we can look for method if Field isn't applicable. Simplify - type is always ClassType and name is always non-null. * SlotSet.java (getField): Likewise.2005-11-23 Per Bothner <per@bothner.com> * Invoke.java (applyN): Don't need to check for staticLink here. Instead, assume extra parameter for ClassType. (inline): Can more inline constructors regardless of whether there is or will be a static link.2005-11-22 Per Bothner <per@bothner.com> * SlotGet.java (getField): Adjust for updated ClassType.getField, to request all fields, not just public|protected ones. * SlotSet.java (getField): Likewise.2005-11-16 Per Bothner <per@bothner.com> * SlotGet.java (apply2): Use WrappedException. * ClassMethods.java (getMethods): Pass caller's package, if known, as context to ClassType.getMethods.2005-10-16 Per Bothner <per@bothner.com> * ClassMethods.java (getMethods): Kludge to search Type.string_type rather than type.tostring_type for methods.2005-09-25 Per Bothner <per@bothner.com> * Invoke.java (typeFrom): New private helper method. (apply(CallContext), apply(Object[],CallContext)): New methods. (applyN): Use typeFrom. * ClassMethodProc.java (kind): New field. (fixup): New method to initialize 'kind' field. (make, readExternal): Use fixup. (apply(CallContext)): New method - optimimization. (applyN, rewrite): Slight optimization by using kind field. (rewrite): Generalize func to handle QuoteExp and ReferenceExp. (toString): New method.2005-08-08 Per Bothner <per@bothner.com> * ClassMethodProc.java (castDecl): New static field. (CAST_METHOD_NAME, INSTANCEOF_METHOD_NAME): New constants. (applyN, rewrite): Support class cast operation.2005-08-07 Per Bothner <per@bothner.com> * SlotGet.java (apply2, compile): Implement "class" pseudo-field.2005-08-04 Per Bothner <per@bothner.com> * Invoke.java (getClassType, inline): Inline in 2-argument inline (inline): Overload to take a Compilation. * Invoke.java (inline): Allow inlining of constructor even if it doesn't yet exist as long as the class is static.2005-08-03 Per Bothner <per@bothner.com> * ClassMethodProc.java: Major rewrite. Now extends ProcedureN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -